From 61af208c00299a28cdb3f45724dac04231c7b069 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:30:31 +0200 Subject: [PATCH 01/11] [strip] FIX_1123_CREND_16BIT_ROM --- lib_com/options.h | 1 - lib_rend/ivas_crend.c | 402 ------------------ lib_rend/ivas_stat_rend.h | 11 - .../generate_crend_ivas_tables_from_sofa.c | 214 ---------- .../ivas_crend_binaural_filter_design.c | 67 --- 5 files changed, 695 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b2d288ce7a..de7508aba9 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -164,7 +164,6 @@ #define FIX_POINT_HRTF_FILE_FORMAT /* All: fix point hrtf binary file format */ #ifdef FIX_POINT_HRTF_FILE_FORMAT -/*#define FIX_1123_CREND_16BIT_ROM*/ /* Ora: update CREND ROM tables to 16 bit */ #define FIX_1123_CREND_16BIT_FMT /* Ora: update CREND binary file format to 16 bit */ #define FIX_1123_CREND_FLTFX_BE /* Ora: make CREND FLT ROM tables BE to FX file */ /*#define FIX_1123_TDREN_16BIT_ROM*/ /* Eri,Ora: update TD Object Renderer tables to 16 bit */ diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 0a811f541a..08d57b79a2 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -143,46 +143,12 @@ static void ivas_hrtf_close( HRTFS_HANDLE *hHrtf /* i/o: HRTF handle */ ) { -#ifdef FIX_1123_CREND_16BIT_ROM - int16_t i, j; -#endif if ( hHrtf == NULL || *hHrtf == NULL ) { return; } -#ifdef FIX_1123_CREND_16BIT_ROM - if ( ( *hHrtf )->init_from_rom ) - { - for ( i = 0; i < BINAURAL_CHANNELS; i++ ) - { - for ( j = 0; j < MAX_INTERN_CHANNELS; j++ ) - { - if ( ( *hHrtf )->pOut_to_bin_re[j][i] != NULL ) - { - free( ( *hHrtf )->pOut_to_bin_re[j][i] ); - ( *hHrtf )->pOut_to_bin_re[j][i] = NULL; - } - if ( ( *hHrtf )->pOut_to_bin_im[j][i] != NULL ) - { - free( ( *hHrtf )->pOut_to_bin_im[j][i] ); - ( *hHrtf )->pOut_to_bin_im[j][i] = NULL; - } - } - if ( ( *hHrtf )->pOut_to_bin_diffuse_re[i] != NULL ) - { - free( ( *hHrtf )->pOut_to_bin_diffuse_re[i] ); - ( *hHrtf )->pOut_to_bin_diffuse_re[i] = NULL; - } - if ( ( *hHrtf )->pOut_to_bin_diffuse_im[i] != NULL ) - { - free( ( *hHrtf )->pOut_to_bin_diffuse_im[i] ); - ( *hHrtf )->pOut_to_bin_diffuse_im[i] = NULL; - } - } - } -#endif free( *hHrtf ); *hHrtf = NULL; @@ -204,11 +170,6 @@ static ivas_error ivas_rend_initCrend( const int32_t output_Fs ) { int16_t i, j, tmp; -#ifdef FIX_1123_CREND_16BIT_ROM - uint32_t k; - float factorQ; - uint32_t sizeRom; -#endif int16_t nchan_in; IVAS_REND_AudioConfigType inConfigType; HRTFS_HANDLE hHrtf; @@ -265,21 +226,13 @@ static ivas_error ivas_rend_initCrend( { if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_BRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_48kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_48kHz; } else { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_HRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_48kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; } @@ -290,38 +243,15 @@ static ivas_error ivas_rend_initCrend( { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_BRIR_num_iterations_diffuse_48kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_48kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz_fx ) / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_diffuse_re[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_diffuse_im[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_diffuse_re[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz_fx[j][k] * factorQ; - hHrtf->pOut_to_bin_diffuse_im[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz_fx[j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_BRIR_coeff_diffuse_re_48kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_BRIR_coeff_diffuse_im_48kHz[j]; -#endif } else { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_HRIR_num_iterations_diffuse_48kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_48kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->pOut_to_bin_diffuse_re[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_48kHz_fx[j]; - hHrtf->pOut_to_bin_diffuse_im[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_48kHz_fx[j]; -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_HRIR_coeff_diffuse_re_48kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_HRIR_coeff_diffuse_im_48kHz[j]; -#endif } } } @@ -329,21 +259,13 @@ static ivas_error ivas_rend_initCrend( { if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_BRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_32kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_32kHz; } else { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_HRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_32kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; } @@ -354,38 +276,15 @@ static ivas_error ivas_rend_initCrend( { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_BRIR_num_iterations_diffuse_32kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_32kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz_fx ) / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_diffuse_re[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_diffuse_im[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_diffuse_re[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz_fx[j][k] * factorQ; - hHrtf->pOut_to_bin_diffuse_im[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz_fx[j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_BRIR_coeff_diffuse_re_32kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_BRIR_coeff_diffuse_im_32kHz[j]; -#endif } else { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_HRIR_num_iterations_diffuse_32kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_32kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->pOut_to_bin_diffuse_re[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_32kHz_fx[j]; - hHrtf->pOut_to_bin_diffuse_im[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_32kHz_fx[j]; -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_HRIR_coeff_diffuse_re_32kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_HRIR_coeff_diffuse_im_32kHz[j]; -#endif } } } @@ -393,22 +292,14 @@ static ivas_error ivas_rend_initCrend( { if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_BRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_BRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_BRIR_index_frequency_max_diffuse_16kHz; } else { -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_fx * powf( 2.f, -1.f * CRendBin_Combined_HRIR_latency_s_Q_fx ); -#else hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s; -#endif hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_16kHz; hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; } @@ -419,38 +310,15 @@ static ivas_error ivas_rend_initCrend( { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_BRIR_num_iterations_diffuse_16kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_BRIR_pIndex_frequency_max_diffuse_16kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz_fx ) / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_diffuse_re[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_diffuse_im[j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_diffuse_re[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz_fx[j][k] * factorQ; - hHrtf->pOut_to_bin_diffuse_im[j][k] = CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz_fx[j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_BRIR_coeff_diffuse_re_16kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[j]; -#endif } else { hHrtf->num_iterations_diffuse[j] = CRendBin_Combined_HRIR_num_iterations_diffuse_16kHz[j]; hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_Combined_HRIR_pIndex_frequency_max_diffuse_16kHz[j]; -#ifdef FIX_1123_CREND_16BIT_ROM - hHrtf->pOut_to_bin_diffuse_re[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz_fx[j]; - hHrtf->pOut_to_bin_diffuse_im[j] = (float *) CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz_fx[j]; -#else hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_Combined_HRIR_coeff_diffuse_re_16kHz[j]; hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_Combined_HRIR_coeff_diffuse_im_16kHz[j]; -#endif } } } @@ -495,52 +363,16 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_BRIR_inv_diffuse_weight_48kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_BRIR_num_iterations_48kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_BRIR_pIndex_frequency_max_48kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_re_48kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_BRIR_coeff_re_48kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_BRIR_coeff_im_48kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_BRIR_coeff_re_48kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_BRIR_coeff_im_48kHz[tmp][j]; -#endif } else { hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_HRIR_inv_diffuse_weight_48kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_HRIR_num_iterations_48kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_HRIR_pIndex_frequency_max_48kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_HRIR_coeff_re_48kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_HRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_HRIR_coeff_re_48kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_HRIR_coeff_im_48kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_HRIR_coeff_re_48kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_HRIR_coeff_im_48kHz[tmp][j]; -#endif } } } @@ -553,52 +385,16 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_BRIR_inv_diffuse_weight_32kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_BRIR_num_iterations_32kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_BRIR_pIndex_frequency_max_32kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_re_32kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_BRIR_coeff_re_32kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_BRIR_coeff_im_32kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_BRIR_coeff_re_32kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_BRIR_coeff_im_32kHz[tmp][j]; -#endif } else { hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_HRIR_inv_diffuse_weight_32kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_HRIR_num_iterations_32kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_HRIR_pIndex_frequency_max_32kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_HRIR_coeff_re_32kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_HRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_HRIR_coeff_re_32kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_HRIR_coeff_im_32kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_HRIR_coeff_re_32kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_HRIR_coeff_im_32kHz[tmp][j]; -#endif } } } @@ -611,52 +407,16 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_BRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_BRIR_coeff_re_16kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_BRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_BRIR_coeff_re_16kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_BRIR_coeff_im_16kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_BRIR_coeff_re_16kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_BRIR_coeff_im_16kHz[tmp][j]; -#endif } else { hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[j][tmp]; hHrtf->num_iterations[i][j] = CRendBin_Combined_HRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_HRIR_pIndex_frequency_max_16kHz[tmp][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_Combined_HRIR_coeff_re_16kHz_fx ) / HRTF_LS_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_Combined_HRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_Combined_HRIR_coeff_re_16kHz_fx[tmp][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_Combined_HRIR_coeff_im_16kHz_fx[tmp][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_HRIR_coeff_re_16kHz[tmp][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_Combined_HRIR_coeff_im_16kHz[tmp][j]; -#endif } } } @@ -683,26 +443,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA3_HRIR_num_iterations_48kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_48kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA3_HRIR_coeff_re_48kHz_fx ) / HOA3_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA3_HRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA3_HRIR_coeff_re_48kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA3_HRIR_coeff_im_48kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA3_HRIR_coeff_re_48kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA3_HRIR_coeff_im_48kHz[i][j]; -#endif } } for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -726,26 +468,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA3_HRIR_num_iterations_32kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_32kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA3_HRIR_coeff_re_32kHz_fx ) / HOA3_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA3_HRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA3_HRIR_coeff_re_32kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA3_HRIR_coeff_im_32kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA3_HRIR_coeff_re_32kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA3_HRIR_coeff_im_32kHz[i][j]; -#endif } } @@ -770,26 +494,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_16kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA3_HRIR_num_iterations_16kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_16kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA3_HRIR_coeff_re_16kHz_fx ) / HOA3_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA3_HRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA3_HRIR_coeff_re_16kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA3_HRIR_coeff_im_16kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA3_HRIR_coeff_re_16kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA3_HRIR_coeff_im_16kHz[i][j]; -#endif } } @@ -821,26 +527,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_48kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA2_HRIR_num_iterations_48kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA2_HRIR_pIndex_frequency_max_48kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA2_HRIR_coeff_re_48kHz_fx ) / HOA2_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA2_HRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA2_HRIR_coeff_re_48kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA2_HRIR_coeff_im_48kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA2_HRIR_coeff_re_48kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA2_HRIR_coeff_im_48kHz[i][j]; -#endif } } for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -864,26 +552,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_32kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA2_HRIR_num_iterations_32kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA2_HRIR_pIndex_frequency_max_32kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA2_HRIR_coeff_re_32kHz_fx ) / HOA2_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA2_HRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA2_HRIR_coeff_re_32kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA2_HRIR_coeff_im_32kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA2_HRIR_coeff_re_32kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA2_HRIR_coeff_im_32kHz[i][j]; -#endif } } @@ -908,26 +578,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_16kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_HOA2_HRIR_num_iterations_16kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_HOA2_HRIR_pIndex_frequency_max_16kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_HOA2_HRIR_coeff_re_16kHz_fx ) / HOA2_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_HOA2_HRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_HOA2_HRIR_coeff_re_16kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_HOA2_HRIR_coeff_im_16kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_HOA2_HRIR_coeff_re_16kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_HOA2_HRIR_coeff_im_16kHz[i][j]; -#endif } } @@ -959,26 +611,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_FOA_HRIR_inv_diffuse_weight_48kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_FOA_HRIR_num_iterations_48kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_FOA_HRIR_pIndex_frequency_max_48kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_FOA_HRIR_coeff_re_48kHz_fx ) / FOA_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_FOA_HRIR_coeff_Q_48kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_FOA_HRIR_coeff_re_48kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_FOA_HRIR_coeff_im_48kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_FOA_HRIR_coeff_re_48kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_FOA_HRIR_coeff_im_48kHz[i][j]; -#endif } } for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -1002,26 +636,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_FOA_HRIR_inv_diffuse_weight_32kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_FOA_HRIR_num_iterations_32kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_FOA_HRIR_pIndex_frequency_max_32kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_FOA_HRIR_coeff_re_32kHz_fx ) / FOA_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_FOA_HRIR_coeff_Q_32kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_FOA_HRIR_coeff_re_32kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_FOA_HRIR_coeff_im_32kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_FOA_HRIR_coeff_re_32kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_FOA_HRIR_coeff_im_32kHz[i][j]; -#endif } } @@ -1046,26 +662,8 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[j][i] = CRendBin_FOA_HRIR_inv_diffuse_weight_16kHz[j][i]; hHrtf->num_iterations[i][j] = CRendBin_FOA_HRIR_num_iterations_16kHz[i][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_FOA_HRIR_pIndex_frequency_max_16kHz[i][j]; -#ifdef FIX_1123_CREND_16BIT_ROM - sizeRom = sizeof( CRendBin_FOA_HRIR_coeff_re_16kHz_fx ) / FOA_CHANNELS / sizeof( int16_t ) / 2; - if ( ( hHrtf->pOut_to_bin_re[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend HRTFS Handle\n" ); - } - if ( ( hHrtf->pOut_to_bin_im[i][j] = (float *) malloc( sizeof( float ) * sizeRom ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend filters taps\n" ); - } - factorQ = powf( 2.f, -1.f * CRendBin_FOA_HRIR_coeff_Q_16kHz_fx ); - for ( k = 0; k < sizeRom; k++ ) - { - hHrtf->pOut_to_bin_re[i][j][k] = CRendBin_FOA_HRIR_coeff_re_16kHz_fx[i][j][k] * factorQ; - hHrtf->pOut_to_bin_im[i][j][k] = CRendBin_FOA_HRIR_coeff_im_16kHz_fx[i][j][k] * factorQ; - } -#else hHrtf->pOut_to_bin_re[i][j] = CRendBin_FOA_HRIR_coeff_re_16kHz[i][j]; hHrtf->pOut_to_bin_im[i][j] = CRendBin_FOA_HRIR_coeff_im_16kHz[i][j]; -#endif } } diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index 3c99dff253..202bcfecf9 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -1175,17 +1175,6 @@ typedef struct ivas_hrtfs_structure float inv_diffuse_weight[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ int16_t same_inv_diffuse_weight; float gain_lfe; -#ifdef FIX_1123_CREND_16BIT_ROM - int16_t *pOut_to_bin_re_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; - int16_t *pOut_to_bin_im_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; - int16_t *pOut_to_bin_diffuse_re_fx[BINAURAL_CHANNELS]; - int16_t *pOut_to_bin_diffuse_im_fx[BINAURAL_CHANNELS]; - int16_t factor_Q_inv_diffuse_weight_fx; - int16_t factor_Q_latency_s_fx; - int16_t inv_diffuse_weight_fx[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ - int32_t latency_s_fx; - int16_t gain_lfe_fx; -#endif } HRTFS_DATA, *HRTFS_HANDLE; diff --git a/scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c b/scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c index 3200139636..acf8506c29 100644 --- a/scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c +++ b/scripts/binauralRenderer_interface/generate_crend_ivas_tables_from_sofa.c @@ -1306,48 +1306,6 @@ int generate_crend_ivas_tables_from_sofa( const char *file_path, ConfigReader *c } -#ifdef FIX_1123_CREND_16BIT_ROM - hrtf_data.latency_s_fx = float2int32_t( hrtf_data.latency_s, factorQ[0] ); - - for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) - { - hrtf_data.inv_diffuse_weight_fx[0][i] = float2int16_t( hrtf_data.inv_diffuse_weight[0][i], factorQ[1] ); - hrtf_data.inv_diffuse_weight_fx[1][i] = float2int16_t( hrtf_data.inv_diffuse_weight[1][i], factorQ[1] ); - } - for ( iIR = 0; iIR < hrtf_data.max_num_ir; iIR++ ) - { - for ( iChan = 0; iChan < BINAURAL_CHANNELS; iChan++ ) - { - offset = 0; - for ( iIter = 0; iIter < hrtf_data.num_iterations[iIR][iChan]; iIter++ ) - { - // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); - for ( i = 0; i < hrtf_data.pIndex_frequency_max[iIR][iChan][iIter]; i++ ) - { - hrtf_data.pOut_to_bin_re_fx[iIR][iChan][offset + i] = float2int16_t( hrtf_data.pOut_to_bin_re[iIR][iChan][offset + i], factorQ[2] ); - hrtf_data.pOut_to_bin_im_fx[iIR][iChan][offset + i] = float2int16_t( hrtf_data.pOut_to_bin_im[iIR][iChan][offset + i], factorQ[2] ); - } - offset = offset + hrtf_data.pIndex_frequency_max[iIR][iChan][iIter]; - } - } - } - - // pOut_to_bin_diffuse_re : The size depends on pIndex_frequency_max_diffuse - for ( iChan = 0; iChan < BINAURAL_CHANNELS; iChan++ ) - { - offset = 0; - for ( iIter = 0; iIter < hrtf_data.num_iterations_diffuse[iChan]; iIter++ ) - { - // memcpy( hrtf_bin_wptr, coeff_rptr, data_size_tmp ); - for ( i = 0; i < hrtf_data.pIndex_frequency_max_diffuse[iChan][iIter]; i++ ) - { - hrtf_data.pOut_to_bin_diffuse_re_fx[iChan][offset + i] = float2int16_t( hrtf_data.pOut_to_bin_diffuse_re[iChan][offset + i], factorQ[2] ); - hrtf_data.pOut_to_bin_diffuse_im_fx[iChan][offset + i] = float2int16_t( hrtf_data.pOut_to_bin_diffuse_im[iChan][offset + i], factorQ[2] ); - } - offset = offset + hrtf_data.pIndex_frequency_max_diffuse[iChan][iIter]; - } - } -#endif #ifdef FIX_1123_CREND_FLTFX_BE int16_t factorQ[3]; @@ -2034,18 +1992,6 @@ int generate_reverb_ivas_tables_from_sofa( const char *file_path ) free( p_avg_lr ); p_avg_lr = NULL; } -#ifdef FIX_1123_CREND_16BIT_ROM - if ( pCoherence_fx ) - { - free( pCoherence_fx ); - pCoherence_fx = NULL; - } - if ( p_avg_lr_fx ) - { - free( p_avg_lr_fx ); - p_avg_lr_fx = NULL; - } -#endif } /* close the file */ @@ -2332,24 +2278,6 @@ void update_c_file_with_reverb( float *pEner_l, float *pEner_r, float *pCoherenc write_array_float_to_file( fp, pEner_r, len, NUM_SAMPLES_PER_LINES_REVERB, FORMAT_FLOAT_REVERB, 2, TAB_WITH_SPACE_OR_NOT ); fprintf( fp, ";\n" ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - /* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/ - fprintf( fp, "\nconst int16_t defaultHRIR_coherence_%dkHz_fx[%s] = \n", samplerate / 1000, len_str ); - write_array_int16_t_to_file( fp, pCoherence_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ";\n" ); - - /* float *defaultHRIR_left_avg_power_[LR_IAC_LENGTH_NR_FC];*/ - fprintf( fp, "\nconst int16_t defaultHRIR_left_avg_power_%dkHz_fx[%s] = \n", samplerate / 1000, len_str ); - write_array_int16_t_to_file( fp, pEner_l_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ";\n" ); - - /* float *defaultHRIR_right_avg_power_[LR_IAC_LENGTH_NR_FC];*/ - fprintf( fp, "\nconst int16_t defaultHRIR_right_avg_power_%dkHz_fx[%s] = \n", samplerate / 1000, len_str ); - write_array_int16_t_to_file( fp, pEner_r_fx, len, NUM_SAMPLES_PER_LINES_REVERB, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ";\n" ); - fprintf( fp, "\n#endif /* FIX_1123_CREND_16BIT_ROM */" ); -#endif if ( fp ) fclose( fp ); @@ -2391,12 +2319,6 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int fprintf( fp, "\nconst float %s_%s_latency_s = ", DECLARATION_NAME, lscfg.name ); fprintf( fp, format_float_latency, hrtf->latency_s ); fprintf( fp, ";" ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nconst int16_t %s_%s_latency_s_Q_fx = %d;", DECLARATION_NAME, lscfg.name, factorQ[0] ); - fprintf( fp, "\nconst int32_t %s_%s_latency_s_fx = %d;/*Q-31*/", DECLARATION_NAME, lscfg.name, hrtf->latency_s_fx ); - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif } fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate ); @@ -2486,19 +2408,6 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int write_array_float_to_file( fp, hrtf->inv_diffuse_weight[1], hrtf->max_num_ir, hrtf->max_num_ir, format_float, 0, TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "}" ); fprintf( fp, ";" ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nconst int16_t %s_%s_inv_diffuse_weight_Q_%2dkHz_fx = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, factorQ[1] ); - /* float inv_diffuse_weight_fx[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */ - fprintf( fp, "\nconst int16_t %s_%s_inv_diffuse_weight_%2dkHz_fx[BINAURAL_CHANNELS][%s]=", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); - fprintf( fp, "{" ); - write_array_int16_t_to_file( fp, hrtf->inv_diffuse_weight_fx[0], hrtf->max_num_ir, hrtf->max_num_ir, 0, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "," ); - write_array_int16_t_to_file( fp, hrtf->inv_diffuse_weight_fx[1], hrtf->max_num_ir, hrtf->max_num_ir, 0, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "}" ); - fprintf( fp, ";" ); - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif /* uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS];*/ if ( hrtf->pIndex_frequency_max_diffuse[0] == NULL ) @@ -2547,78 +2456,7 @@ void update_c_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT ); fprintf( fp, "\n};" ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nconst int16_t %s_%s_coeff_Q_%2dkHz_fx = %d;", DECLARATION_NAME, lscfg.name, samplerate / 1000, factorQ[2] ); - /* float *pOut_to_bin_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ - fprintf( fp, "\nconst int16_t %s_%s_coeff_re_%2dkHz_fx[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); - for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) - { - fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_re_fx[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_re_fx[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT ); - } - fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_re_fx[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_re_fx[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n};" ); - - fprintf( fp, "\nconst int16_t %s_%s_coeff_im_%2dkHz_fx[%s][BINAURAL_CHANNELS][%d]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); - for ( i = 0; i < hrtf->max_num_ir - 1; i++ ) - { - fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_im_fx[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_im_fx[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n%s},", TAB_WITH_SPACE_OR_NOT ); - } - fprintf( fp, "\n%s{\n", TAB_WITH_SPACE_OR_NOT ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_im_fx[i][0], pTotalNumFreqSampPerIterations[0][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_im_fx[i][1], pTotalNumFreqSampPerIterations[1][i], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n%s}", TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n};" ); - - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif - -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - /* float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS];*/ - if ( hrtf->pOut_to_bin_diffuse_re_fx[0] == NULL ) - { - fprintf( fp, "\nconst int16_t *%s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - } - else - { - fprintf( fp, "\nconst int16_t %s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_re_fx[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_re_fx[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n};" ); - } - - /* float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS];*/ - if ( hrtf->pOut_to_bin_diffuse_im_fx[0] == NULL ) - { - fprintf( fp, "\nconst int16_t *%s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS]={NULL,NULL};", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - } - else - { - fprintf( fp, "\nconst int16_t %s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS][%u]={", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_im_fx[0], pTotalNumFreqSampPerIterationsDiffuse[0], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, ",\n" ); - write_array_int16_t_to_file( fp, hrtf->pOut_to_bin_diffuse_im_fx[1], pTotalNumFreqSampPerIterationsDiffuse[1], NUM_SAMPLES_PER_LINES, 2, TAB_WITH_SPACE_OR_NOT ); - fprintf( fp, "\n};" ); - } - - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif /* float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS];*/ if ( hrtf->pOut_to_bin_diffuse_re[0] == NULL ) @@ -2695,15 +2533,6 @@ void update_h_file_with_reverb( int32_t samplerate ) /* float *defaultHRIR_left_avg_power[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ fprintf( fp, "\nextern float defaultHRIR_left_avg_power_%dkHz[%s];", samplerate / 1000, len_str ); fprintf( fp, "\nextern float defaultHRIR_right_avg_power_%dkHz[%s];", samplerate / 1000, len_str ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - /* Uint16_t *defaultHRIR_coherence_[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ - fprintf( fp, "\nextern int16_t defaultHRIR_coherence_%dkHz_fx[%s];", samplerate / 1000, len_str ); - /* Uint16_t *defaultHRIR_left_avg_power[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ - fprintf( fp, "\nextern int16_t defaultHRIR_left_avg_power_%dkHz_fx[%s];", samplerate / 1000, len_str ); - fprintf( fp, "\nextern int16_t defaultHRIR_right_avg_power_%dkHz_fx[%s];", samplerate / 1000, len_str ); - fprintf( fp, "\n#endif /* FIX_1123_CREND_16BIT_ROM */" ); -#endif if ( fp ) fclose( fp ); @@ -2779,12 +2608,6 @@ void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int /* float latency_s; */ fprintf( fp, "\n\n/********************** %s_%s **********************/\n", DECLARATION_NAME, lscfg.name ); fprintf( fp, "\nextern float %s_%s_latency_s;", DECLARATION_NAME, lscfg.name ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nextern int16_t %s_%s_latency_s_Q_fx;", DECLARATION_NAME, lscfg.name ); - fprintf( fp, "\nextern int32_t %s_%s_latency_s_fx;", DECLARATION_NAME, lscfg.name ); - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif } fprintf( fp, "\n\n/* Sample Rate = %ld */\n", (long) samplerate ); @@ -2805,13 +2628,6 @@ void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int /* float inv_diffuse_weight[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */ fprintf( fp, "\nextern float %s_%s_inv_diffuse_weight_%2dkHz[BINAURAL_CHANNELS][%s];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); -#ifdef FIX_1123_CREND_16BIT_ROM - /* float inv_diffuse_weight_fx[BINAURAL_CHANNELS][MAX_INTERN_CHANNELS]; */ - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nextern int16_t %s_%s_inv_diffuse_weight_Q_%2dkHz_fx;", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - fprintf( fp, "\nextern int16_t %s_%s_inv_diffuse_weight_%2dkHz_fx[BINAURAL_CHANNELS][%s];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name ); - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif /* uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS];*/ if ( hrtf->pIndex_frequency_max_diffuse[0] == NULL ) @@ -2827,36 +2643,6 @@ void update_h_file( HRTFS_DATA *hrtf, struct ivas_layout_config lscfg, const int fprintf( fp, "\nextern float %s_%s_coeff_re_%2dkHz[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); fprintf( fp, "\nextern float %s_%s_coeff_im_%2dkHz[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); -#ifdef FIX_1123_CREND_16BIT_ROM - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - /* int32_t *pOut_to_bin_fx[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS];*/ - fprintf( fp, "\n#ifdef FIX_1123_CREND_16BIT_ROM" ); - fprintf( fp, "\nextern int16_t %s_%s_coeff_Q_%2dkHz_fx;", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - fprintf( fp, "\n#endif" ); - fprintf( fp, "\nextern int16_t %s_%s_coeff_re_%2dkHz_fx[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); - fprintf( fp, "\nextern int16_t %s_%s_coeff_im_%2dkHz_fx[%s][BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, lscfg.output_config_num_channel_name, maxTotalNumFreqSampPerIterations ); - - /* float *pOut_to_bin_diffuse_re_fx[BINAURAL_CHANNELS];*/ - if ( hrtf->pOut_to_bin_diffuse_re_fx[0] == NULL ) - { - fprintf( fp, "\nextern int16_t *%s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - } - else - { - fprintf( fp, "\nextern int16_t %s_%s_coeff_diffuse_re_%2dkHz_fx[BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); - } - - /* float *pOut_to_bin_diffuse_im_fx[BINAURAL_CHANNELS];*/ - if ( hrtf->pOut_to_bin_diffuse_im_fx[0] == NULL ) - { - fprintf( fp, "\nextern int16_t *%s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS];", DECLARATION_NAME, lscfg.name, samplerate / 1000 ); - } - else - { - fprintf( fp, "\nextern int16_t %s_%s_coeff_diffuse_im_%2dkHz_fx[BINAURAL_CHANNELS][%u];", DECLARATION_NAME, lscfg.name, samplerate / 1000, maxTotalNumFreqSampPerIterationsDiffuse ); - } - fprintf( fp, "\n#endif // FIX_1123_CREND_16BIT_ROM" ); -#endif /* float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS];*/ if ( hrtf->pOut_to_bin_diffuse_re[0] == NULL ) { diff --git a/scripts/binauralRenderer_interface/ivas_crend_binaural_filter_design.c b/scripts/binauralRenderer_interface/ivas_crend_binaural_filter_design.c index 5c56ac6134..5ec0215c6d 100644 --- a/scripts/binauralRenderer_interface/ivas_crend_binaural_filter_design.c +++ b/scripts/binauralRenderer_interface/ivas_crend_binaural_filter_design.c @@ -216,18 +216,6 @@ ivas_error ivas_hrtf_close( free( hHRTF->pOut_to_bin_im[i][j] ); hHRTF->pOut_to_bin_im[i][j] = NULL; } -#ifdef FIX_1123_CREND_16BIT_ROM - if ( hHRTF->pOut_to_bin_re_fx[i][j] != NULL ) - { - free( hHRTF->pOut_to_bin_re_fx[i][j] ); - hHRTF->pOut_to_bin_re_fx[i][j] = NULL; - } - if ( hHRTF->pOut_to_bin_im_fx[i][j] != NULL ) - { - free( hHRTF->pOut_to_bin_im_fx[i][j] ); - hHRTF->pOut_to_bin_im_fx[i][j] = NULL; - } -#endif } } for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -247,18 +235,6 @@ ivas_error ivas_hrtf_close( free( hHRTF->pOut_to_bin_diffuse_im[j] ); hHRTF->pOut_to_bin_diffuse_im[j] = NULL; } -#ifdef FIX_1123_CREND_16BIT_ROM - if ( hHRTF->pOut_to_bin_diffuse_re_fx[j] != NULL ) - { - free( hHRTF->pOut_to_bin_diffuse_re_fx[j] ); - hHRTF->pOut_to_bin_diffuse_re_fx[j] = NULL; - } - if ( hHRTF->pOut_to_bin_diffuse_im_fx[j] != NULL ) - { - free( hHRTF->pOut_to_bin_diffuse_im_fx[j] ); - hHRTF->pOut_to_bin_diffuse_im_fx[j] = NULL; - } -#endif } return IVAS_ERR_OK; @@ -798,10 +774,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_re[i_chan][i_ear] = (float *) malloc( (size_t) pParam->num_iterations[i_chan][i_ear] * frame_len * sizeof( float ) ); pParam->pOut_to_bin_im[i_chan][i_ear] = (float *) malloc( (size_t) pParam->num_iterations[i_chan][i_ear] * frame_len * sizeof( float ) ); -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_re_fx[i_chan][i_ear] = (int16_t *) malloc( (size_t) pParam->num_iterations[i_chan][i_ear] * frame_len * sizeof( int16_t ) ); - pParam->pOut_to_bin_im_fx[i_chan][i_ear] = (int16_t *) malloc( (size_t) pParam->num_iterations[i_chan][i_ear] * frame_len * sizeof( int16_t ) ); -#endif } } @@ -966,10 +938,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_re[i_chan][i_ear] = (float *) malloc( totSizeFreq[i_chan] * sizeof( float ) ); pParam->pOut_to_bin_im[i_chan][i_ear] = (float *) malloc( totSizeFreq[i_chan] * sizeof( float ) ); -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_re_fx[i_chan][i_ear] = (int16_t *) malloc( totSizeFreq[i_chan] * sizeof( int16_t ) ); - pParam->pOut_to_bin_im_fx[i_chan][i_ear] = (int16_t *) malloc( totSizeFreq[i_chan] * sizeof( int16_t ) ); -#endif offset = 0; for ( i_block = 0; i_block < pParam->num_iterations[i_chan][i_ear]; ++i_block ) { @@ -1008,10 +976,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_re[i_chan][i_ear][offset + i_tap] = pBlockSpectrum_r[i_tap]; pParam->pOut_to_bin_im[i_chan][i_ear][offset + i_tap] = pBlockSpectrum_i[i_tap]; -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_re_fx[i_chan][i_ear][offset + i_tap] = float2int16_t( pParam->pOut_to_bin_re[i_chan][i_ear][offset + i_tap], 15 ); - pParam->pOut_to_bin_im_fx[i_chan][i_ear][offset + i_tap] = float2int16_t( pParam->pOut_to_bin_im[i_chan][i_ear][offset + i_tap], 15 ); -#endif } offset = offset + pParam->pIndex_frequency_max[i_chan][i_ear][i_block]; } @@ -1024,10 +988,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_diffuse_re[i_ear] = NULL; pParam->pOut_to_bin_diffuse_im[i_ear] = NULL; -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_diffuse_re_fx[i_ear] = NULL; - pParam->pOut_to_bin_diffuse_im_fx[i_ear] = NULL; -#endif } } @@ -1274,10 +1234,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_diffuse_re[i_ear] = (float *) malloc( totSizeFreqDiffuse * sizeof( float ) ); pParam->pOut_to_bin_diffuse_im[i_ear] = (float *) malloc( totSizeFreqDiffuse * sizeof( float ) ); -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_diffuse_re_fx[i_ear] = (int16_t *) malloc( totSizeFreqDiffuse * sizeof( int16_t ) ); - pParam->pOut_to_bin_diffuse_im_fx[i_ear] = (int16_t *) malloc( totSizeFreqDiffuse * sizeof( int16_t ) ); -#endif offset = 0; for ( i_block = 0; i_block < pParam->num_iterations_diffuse[0]; ++i_block ) { @@ -1326,10 +1282,6 @@ ivas_error ivas_crend_binaural_filter_design_set_hrtf_fr( { pParam->pOut_to_bin_diffuse_re[i_ear][offset + i_tap] = pBlockSpectrum_r[i_tap]; pParam->pOut_to_bin_diffuse_im[i_ear][offset + i_tap] = pBlockSpectrum_i[i_tap]; -#ifdef FIX_1123_CREND_16BIT_ROM - pParam->pOut_to_bin_diffuse_re_fx[i_ear][offset + i_tap] = float2int16_t( pParam->pOut_to_bin_diffuse_re[i_ear][offset + i_tap], 15 ); - pParam->pOut_to_bin_diffuse_im_fx[i_ear][offset + i_tap] = float2int16_t( pParam->pOut_to_bin_diffuse_im[i_ear][offset + i_tap], 15 ); -#endif } offset = offset + pParam->pIndex_frequency_max_diffuse[i_ear][i_block]; } @@ -1392,18 +1344,6 @@ ivas_error ivas_set_hrtf_fr( return IVAS_ERR_FAILED_ALLOC; } -#ifdef FIX_1123_CREND_16BIT_ROM - crend_hrtf->pOut_to_bin_re_fx[i][j] = (int16_t *) malloc( ( ( (size_t) crend_hrtf->num_iterations[i][j] * output_frame ) ) * sizeof( int16_t ) ); - if ( crend_hrtf->pOut_to_bin_re_fx[i][j] == NULL ) - { - return IVAS_ERR_FAILED_ALLOC; - } - crend_hrtf->pOut_to_bin_im_fx[i][j] = (int16_t *) malloc( ( ( (size_t) crend_hrtf->num_iterations[i][j] * output_frame ) ) * sizeof( int16_t ) ); - if ( crend_hrtf->pOut_to_bin_im_fx[i][j] == NULL ) - { - return IVAS_ERR_FAILED_ALLOC; - } -#endif n = 0; @@ -1437,13 +1377,6 @@ ivas_error ivas_set_hrtf_fr( v_multc( &crend_hrtf->pOut_to_bin_im[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame], mdft_scale_fact, &crend_hrtf->pOut_to_bin_im[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame], output_frame ); -#ifdef FIX_1123_CREND_16BIT_ROM - for ( k = 0; k < output_frame; k++ ) - { - crend_hrtf->pOut_to_bin_re_fx[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame + k] = float2int16_t( crend_hrtf->pOut_to_bin_re[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame + k], 15 ); - crend_hrtf->pOut_to_bin_im_fx[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame + k] = float2int16_t( crend_hrtf->pOut_to_bin_im[i][j][( crend_hrtf->num_iterations[i][j] - 1 - m ) * output_frame + k], 15 ); - } -#endif } } } -- GitLab From bc5aead13a4d09c14368d2d2b3f3a3eeffd0d4d9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:32:02 +0200 Subject: [PATCH 02/11] [strip] FIX_1123_TDREN_16BIT_ROM --- lib_rend/ivas_objectRenderer_hrFilt.c | 21 - lib_rend/ivas_objectRenderer_mix.c | 234 - lib_rend/ivas_rom_TdBinauralRenderer.c | 10165 ----------------------- lib_rend/ivas_rom_TdBinauralRenderer.h | 55 - 4 files changed, 10475 deletions(-) diff --git a/lib_rend/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c index 456dbc640c..d63956ac04 100644 --- a/lib_rend/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -516,40 +516,19 @@ void BSplineModelEvalDealloc( if ( model->modelROM ) { -#ifdef FIX_1123_TDREN_16BIT_ROM - for ( i = 0; i < model->num_unique_azim_splines; i++ ) - { - free( model->azimBsShape_dyn[i] ); - } - free( model->azimBsShape_dyn ); - model->azimBsShape_dyn = NULL; -#endif free( (void *) model->azimBsShape ); /* void* cast needed to please both gcc and Visual studio compilers. Deallocating const float** should be fine and gcc agrees, but Visual studio complains. */ -#ifdef FIX_1123_TDREN_16BIT_ROM - model->azimBsShape = NULL; -#endif for ( i = 0; i < model->elevDim3; i++ ) { free( model->azimKSeq[i] ); -#ifdef FIX_1123_TDREN_16BIT_ROM - model->azimKSeq[i] = NULL; -#endif } free( model->azimKSeq ); -#ifdef FIX_1123_TDREN_16BIT_ROM - model->azimKSeq = NULL; -#endif if ( modelEval != NULL ) { free( modelEval->hrfModL ); free( modelEval->hrfModR ); -#ifdef FIX_1123_TDREN_16BIT_ROM - modelEval->hrfModL = NULL; - modelEval->hrfModR = NULL; -#endif } } diff --git a/lib_rend/ivas_objectRenderer_mix.c b/lib_rend/ivas_objectRenderer_mix.c index fa2ad5c892..d9075c08aa 100644 --- a/lib_rend/ivas_objectRenderer_mix.c +++ b/lib_rend/ivas_objectRenderer_mix.c @@ -170,45 +170,6 @@ void TDREND_MIX_Dealloc( if ( hBinRendererTd->HrFiltSet_p->ModelParams.modelROM == 1 ) { -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( hBinRendererTd->HrFiltSet_p->ModelParams.UseItdModel ) - { - free( hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevKSeq_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimKSeq_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParamsITD.W_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimBsShape_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevBsShape_dyn ); - hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevKSeq_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimKSeq_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.W_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimBsShape_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevBsShape_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevKSeq = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimKSeq = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.W = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.azimBsShape = NULL; - hBinRendererTd->HrFiltSet_p->ModelParamsITD.elevBsShape = NULL; - } - - free( hBinRendererTd->HrFiltSet_p->ModelParams.AlphaL_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParams.AlphaR_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParams.EL_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParams.ER_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParams.elevKSeq_dyn ); - free( hBinRendererTd->HrFiltSet_p->ModelParams.elevBsShape_dyn ); - hBinRendererTd->HrFiltSet_p->ModelParams.AlphaL_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.AlphaR_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.EL_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.ER_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.elevKSeq_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.elevBsShape_dyn = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.AlphaL = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.AlphaR = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.EL = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.ER = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.elevKSeq = NULL; - hBinRendererTd->HrFiltSet_p->ModelParams.elevBsShape = NULL; -#endif free( hBinRendererTd->HrFiltSet_p ); hBinRendererTd->HrFiltSet_p = NULL; @@ -415,23 +376,9 @@ static ivas_error DefaultBSplineModel( { ModelParams_t *model; ModelParamsITD_t *modelITD; -#ifdef FIX_1123_TDREN_16BIT_ROM - int32_t i, j; -#else int16_t i, j; -#endif ivas_error error; float azimSegSamples; -#ifdef FIX_1123_TDREN_16BIT_ROM - float q_scale = 0; - int32_t size_rom_table; - float q_scale_a = 0; - float q_scale_e = 0; - const int16_t *alphaL_ptr = NULL; - const int16_t *alphaR_ptr = NULL; - const int32_t *elL_ptr = NULL; - const int32_t *elR_ptr = NULL; -#endif HrFiltSet_p->FilterMethod = TDREND_HRFILT_Method_BSplineModel; model = &( HrFiltSet_p->ModelParams ); @@ -455,60 +402,15 @@ static ivas_error DefaultBSplineModel( model->azimShapeSampFactor = defaultHRIR_rom_azimShapeSampFactor; /* float parameters */ -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( ( model->elevKSeq_dyn = (float *) malloc( ( model->elevDim3 - 2 ) * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_elevKSeq_Q ); - for ( j = 0; j < model->elevDim3 - 2; j++ ) - { - model->elevKSeq_dyn[j] = defaultHRIR_rom_elevKSeq[j] * q_scale; - } - model->elevKSeq = (const float *) model->elevKSeq_dyn; - - size_rom_table = sizeof( defaultHRIR_rom_elevBsShape ) / sizeof( int16_t ); - if ( ( model->elevBsShape_dyn = (float *) malloc( size_rom_table * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_elevBsShape_Q ); - for ( j = 0; j < size_rom_table; j++ ) - { - model->elevBsShape_dyn[j] = defaultHRIR_rom_elevBsShape[j] * q_scale; - } - model->elevBsShape = (const float *) model->elevBsShape_dyn; -#else model->elevKSeq = (const float *) defaultHRIR_rom_elevKSeq; model->elevBsShape = (const float *) defaultHRIR_rom_elevBsShape; -#endif if ( ( model->azimBsShape = (const float **) malloc( model->num_unique_azim_splines * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); } -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( ( model->azimBsShape_dyn = (float **) malloc( model->num_unique_azim_splines * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - size_rom_table = sizeof( defaultHRIR_rom_azimBsShape ) / sizeof( int16_t ); - if ( ( model->azimBsShape_dyn[0] = (float *) malloc( size_rom_table * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_azimBsShape_Q ); - for ( j = 0; j < size_rom_table; j++ ) - { - model->azimBsShape_dyn[0][j] = defaultHRIR_rom_azimBsShape[j] * q_scale; - } - model->azimBsShape[0] = (const float *) model->azimBsShape_dyn[0]; -#else model->azimBsShape[0] = (const float *) defaultHRIR_rom_azimBsShape; -#endif if ( ( model->azimKSeq = (float **) malloc( model->elevDim3 * sizeof( float * ) ) ) == NULL ) { @@ -541,19 +443,10 @@ static ivas_error DefaultBSplineModel( switch ( output_Fs ) { case 48000: -#ifdef FIX_1123_TDREN_16BIT_ROM - q_scale_a = powf( 2.f, -1.f * defaultHRIR_rom_Alpha48_Q ); - q_scale_e = powf( 2.f, -1.f * defaultHRIR_rom_E48_Q ); - alphaL_ptr = defaultHRIR_rom_AlphaL48; - alphaR_ptr = defaultHRIR_rom_AlphaR48; - elL_ptr = defaultHRIR_rom_EL48; - elR_ptr = defaultHRIR_rom_ER48; -#else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL48; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR48; model->EL = (const float *) defaultHRIR_rom_EL48; model->ER = (const float *) defaultHRIR_rom_ER48; -#endif model->K = defaultHRIR_rom_model_configuration[5]; if ( HrFiltSet_p->ModelParams.UseItdModel ) { @@ -561,19 +454,10 @@ static ivas_error DefaultBSplineModel( } break; case 32000: -#ifdef FIX_1123_TDREN_16BIT_ROM - q_scale_a = powf( 2.f, -1.f * defaultHRIR_rom_Alpha32_Q ); - q_scale_e = powf( 2.f, -1.f * defaultHRIR_rom_E32_Q ); - alphaL_ptr = defaultHRIR_rom_AlphaL32; - alphaR_ptr = defaultHRIR_rom_AlphaR32; - elL_ptr = defaultHRIR_rom_EL32; - elR_ptr = defaultHRIR_rom_ER32; -#else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL32; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR32; model->EL = (const float *) defaultHRIR_rom_EL32; model->ER = (const float *) defaultHRIR_rom_ER32; -#endif model->K = (int16_t) ceilf( RESAMPLE_FACTOR_32_48 * defaultHRIR_rom_model_configuration[5] ); if ( HrFiltSet_p->ModelParams.UseItdModel ) { @@ -581,19 +465,10 @@ static ivas_error DefaultBSplineModel( } break; case 16000: -#ifdef FIX_1123_TDREN_16BIT_ROM - q_scale_a = powf( 2.f, -1.f * defaultHRIR_rom_Alpha16_Q ); - q_scale_e = powf( 2.f, -1.f * defaultHRIR_rom_E16_Q ); - alphaL_ptr = defaultHRIR_rom_AlphaL16; - alphaR_ptr = defaultHRIR_rom_AlphaR16; - elL_ptr = defaultHRIR_rom_EL16; - elR_ptr = defaultHRIR_rom_ER16; -#else model->AlphaL = (const float *) defaultHRIR_rom_AlphaL16; model->AlphaR = (const float *) defaultHRIR_rom_AlphaR16; model->EL = (const float *) defaultHRIR_rom_EL16; model->ER = (const float *) defaultHRIR_rom_ER16; -#endif model->K = (int16_t) ceilf( RESAMPLE_FACTOR_16_48 * defaultHRIR_rom_model_configuration[5] ); if ( HrFiltSet_p->ModelParams.UseItdModel ) { @@ -603,46 +478,6 @@ static ivas_error DefaultBSplineModel( default: break; } -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( ( model->AlphaL_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - if ( ( model->AlphaR_dyn = (float *) malloc( model->AlphaN * model->K * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - for ( j = 0; j < model->AlphaN * model->K; j++ ) - { - model->AlphaL_dyn[j] = alphaL_ptr[j] * q_scale_a; - model->AlphaR_dyn[j] = alphaR_ptr[j] * q_scale_a; - } - model->AlphaL = (const float *) model->AlphaL_dyn; - model->AlphaR = (const float *) model->AlphaR_dyn; - - /* Precalculated energies for each section and each row of the alpha matrices */ - HRTF_model_precalc( model ); -#ifndef FIX_1123_TDREN_16BIT_ROM - HRTF_energy_sections_precalc( model ); -#endif - - if ( ( model->EL_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - if ( ( model->ER_dyn = (float *) malloc( HRTF_MODEL_N_SECTIONS * model->AlphaN * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - for ( j = 0; j < HRTF_MODEL_N_SECTIONS * model->AlphaN; j++ ) - { - model->EL_dyn[j] = elL_ptr[j] * q_scale_e; - model->ER_dyn[j] = elR_ptr[j] * q_scale_e; - } - - model->EL = (const float *) model->EL_dyn; - model->ER = (const float *) model->ER_dyn; -#endif modelITD->elevDim3 = defaultHRIR_rom_ITD_model_configuration[0]; modelITD->azimDim3 = defaultHRIR_rom_ITD_model_configuration[1]; @@ -651,88 +486,19 @@ static ivas_error DefaultBSplineModel( modelITD->elevBsLen = defaultHRIR_rom_ITD_elevBsLen; modelITD->elevBsStart = defaultHRIR_rom_ITD_elevBsStart; -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( ( modelITD->elevKSeq_dyn = (float *) malloc( ( modelITD->elevDim3 - 2 ) * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_ITD_elevKSeq_Q ); - for ( j = 0; j < modelITD->elevDim3 - 2; j++ ) - { - modelITD->elevKSeq_dyn[j] = defaultHRIR_rom_ITD_elevKSeq[j] * q_scale; - } - modelITD->elevKSeq = (const float *) modelITD->elevKSeq_dyn; -#else modelITD->elevKSeq = defaultHRIR_rom_ITD_elevKSeq; -#endif modelITD->azimBsLen = defaultHRIR_rom_ITD_azimBsLen; modelITD->azimBsStart = defaultHRIR_rom_ITD_azimBsStart; -#ifdef FIX_1123_TDREN_16BIT_ROM - if ( ( modelITD->azimKSeq_dyn = (float *) malloc( ( ( modelITD->azimDim3 + 1 ) / 2 - 2 ) * sizeof( float ) ) ) == NULL ) /* basis functions are flipped around 180 deg, number of basis functions above/below is (N+1)/2 */ - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_ITD_azimKSeq_Q ); - for ( j = 0; j < ( modelITD->azimDim3 + 1 ) / 2 - 2; j++ ) - { - modelITD->azimKSeq_dyn[j] = defaultHRIR_rom_ITD_azimKSeq[j] * q_scale; - } - modelITD->azimKSeq = (const float *) modelITD->azimKSeq_dyn; -#else modelITD->azimKSeq = defaultHRIR_rom_ITD_azimKSeq; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM - size_rom_table = sizeof( defaultHRIR_rom_ITD_W ) / sizeof( int16_t ); - if ( ( modelITD->W_dyn = (float *) malloc( size_rom_table * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_ITD_W_Q ); - for ( j = 0; j < size_rom_table; j++ ) - { - modelITD->W_dyn[j] = defaultHRIR_rom_ITD_W[j] * q_scale; - } - modelITD->W = (const float *) modelITD->W_dyn; - - size_rom_table = sizeof( defaultHRIR_rom_ITD_azimBsShape ) / sizeof( int16_t ); - if ( ( modelITD->azimBsShape_dyn = (float *) malloc( size_rom_table * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_ITD_azimBsShape_Q ); - for ( j = 0; j < size_rom_table; j++ ) - { - modelITD->azimBsShape_dyn[j] = defaultHRIR_rom_ITD_azimBsShape[j] * q_scale; - } - modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn; - - size_rom_table = sizeof( defaultHRIR_rom_ITD_elevBsShape ) / sizeof( int16_t ); - if ( ( modelITD->elevBsShape_dyn = (float *) malloc( size_rom_table * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural TD renderer\n" ) ); - } - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_ITD_elevBsShape_Q ); - for ( j = 0; j < size_rom_table; j++ ) - { - modelITD->elevBsShape_dyn[j] = defaultHRIR_rom_ITD_elevBsShape[j] * q_scale; - } - modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn; -#else modelITD->W = (const float *) defaultHRIR_rom_ITD_W; modelITD->azimBsShape = (const float *) defaultHRIR_rom_ITD_azimBsShape; modelITD->elevBsShape = (const float *) defaultHRIR_rom_ITD_elevBsShape; -#endif HRTF_model_precalc( model ); -#ifdef FIX_1123_TDREN_16BIT_ROM - q_scale = powf( 2.f, -1.f * defaultHRIR_rom_latency_s_Q ); - HrFiltSet_p->latency_s = defaultHRIR_rom_latency_s * q_scale; -#else HrFiltSet_p->latency_s = defaultHRIR_rom_latency_s; -#endif HrFiltSet_p->SampleRate = output_Fs; HrFiltSet_p->FiltLength = HrFiltSet_p->ModelParams.K; diff --git a/lib_rend/ivas_rom_TdBinauralRenderer.c b/lib_rend/ivas_rom_TdBinauralRenderer.c index 86cdf17813..bba8fd28b4 100644 --- a/lib_rend/ivas_rom_TdBinauralRenderer.c +++ b/lib_rend/ivas_rom_TdBinauralRenderer.c @@ -51,12 +51,7 @@ /* Generated on 31-Jul-2024 with Matlab version 9.9.0.2037887 (R2020b) Update 8 by tmu on MACI64 */ #endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_latency_s_Q = 31; -const int32_t defaultHRIR_rom_latency_s = 44741; -#else const float defaultHRIR_rom_latency_s = 0.000020834f; -#endif const int16_t defaultHRIR_rom_model_configuration[6] = { 1, /* UseItdModel */ 15, /* elevDim3 */ @@ -86,2448 +81,15 @@ const int16_t defaultHRIR_rom_azimShapeIdx[15] = { const int16_t defaultHRIR_rom_azimShapeSampFactor[15] = { -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, }; -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_elevKSeq_Q = 8; -const int16_t defaultHRIR_rom_elevKSeq[13] = { --23040, -19200, -15360, -11520, -7680, -3840, 0, 3840, 7680, 11520, 15360, 19200, 23040, -}; -#else const float defaultHRIR_rom_elevKSeq[13] = { -90.000000f, -75.000000f, -60.000000f, -45.000000f, -30.000000f, -15.000000f, 0.000000f, 15.000000f, 30.000000f, 45.000000f, 60.000000f, 75.000000f, 90.000000f, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_elevBsShape_Q = 15; -const int16_t defaultHRIR_rom_elevBsShape[36] = { -32767, 13824, 4096, 512, 0, 0, 16256, 19456, 14976, 8192, 3456, 1024, 128, 0, 0, 2603, 8533, 14976, 19115, 18901, 15360, 10283, 5461, 2304, 683, 85, 0, 0, 85, 683, 2304, 5461, 10325, 15701, 20053, 21845, -}; -#else const uint32_t defaultHRIR_rom_elevBsShape[36] = { 0x3f7ffe00,0x3ed80000,0x3e000000,0x3c800000,0x00000000,0x00000000,0x3efe0000,0x3f180000,0x3eea0000,0x3e800000,0x3dd80000,0x3d000000,0x3b800000,0x00000000,0x00000000,0x3da2b000,0x3e855400,0x3eea0000,0x3f155600,0x3f13aa00,0x3ef00000,0x3ea0ac00,0x3e2aa800,0x3d900000,0x3caac000,0x3b2a0000,0x00000000,0x00000000,0x3b2a0000,0x3caac000,0x3d900000,0x3e2aa800,0x3ea15400,0x3ef55400,0x3f1caa00,0x3f2aaa00, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_azimBsShape_Q = 15; -const int16_t defaultHRIR_rom_azimBsShape[21] = { -21845, 21534, 20666, 19339, 17651, 15701, 13588, 11409, 9262, 7247, 5461, 3981, 2796, 1873, 1180, 683, 350, 147, 44, 5, 0, -}; -#else const uint32_t defaultHRIR_rom_azimBsShape[21] = { 0x3f2aaa00,0x3f283c00,0x3f217400,0x3f171600,0x3f09e600,0x3ef55400,0x3ed45000,0x3eb24400,0x3e90b800,0x3e627800,0x3e2aa800,0x3df8d000,0x3daec000,0x3d6a2000,0x3d138000,0x3caac000,0x3c2f0000,0x3b930000,0x3ab00000,0x39200000,0x00000000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_Alpha48_Q = 14; -const int16_t defaultHRIR_rom_AlphaL48[470 * 128] = { -2196, 437, 2620, 2054, 2197, 2199, 2307, 2350, 2385, 2307, 2258, 2205, 2160, 2123, 2102, 2085, 2065, 2056, 2023, 1908, 2395, 344, -284, -1067, 727, --254, -967, -1015, -962, -744, -990, -1062, -1012, -253, 995, -969, -365, -507, 2274, 2569, 2558, 2708, 3008, 3150, 3172, 2983, 2806, 2631, 2493, 2403, -2356, 2311, 2242, 2234, 2066, 2129, 1777, -305, 1050, 805, 801, 521, 938, 1041, 896, 504, 989, 1447, 969, 1091, 665, 568, 1673, 579, 2009, -3009, 2805, 3152, 3728, 3995, 4075, 3714, 3369, 3088, 2820, 2633, 2525, 2431, 2302, 2289, 1940, 2092, 1185, 303, 405, 452, 489, 51, 500, 35, -827, -132, 708, 24, 360, 406, 503, 296, 1022, 243, 1899, 3142, 3071, 3630, 4588, 5040, 5098, 4443, 3850, 3353, 2935, 2662, 2554, 2413, 2243, -2211, 1843, 1779, 960, -34, 592, -85, 207, 192, 167, 37, 21, 264, 58, 284, 350, 397, 258, 419, 953, 634, 3000, 4275, 4236, 4619, -4993, 5290, 5488, 5627, 5429, 4616, 4592, 4274, 3776, 3610, 3283, 3031, 2304, 2209, 1181, -48, 596, 152, 172, -18, 68, 69, 168, 255, 141, -274, 159, 557, 248, 652, 653, 175, 2144, 4893, 4691, 5413, 5615, 5755, 5614, 5454, 5110, 4549, 4434, 4374, 4416, 4091, 3693, 3473, 2612, 2528, -1233, 216, 402, 238, 510, 374, 128, 181, 117, 87, 115, 115, 432, 283, 960, 678, 1308, 242, 2935, 6359, 6403, 7310, 6519, 6132, 5738, -5152, 5086, 5668, 6050, 6059, 5736, 4966, 4129, 3449, 2587, 2637, 1163, 566, 759, 188, 304, 287, 147, 123, 182, 279, 242, 157, 160, -288, -892, -197, 1377, 492, 3891, 6816, 6296, 6182, 5703, 5610, 5535, 5591, 5574, 5370, 5305, 5062, 4594, 4192, 3623, 3056, 2415, 2435, 1360, -88, 558, -454, 377, 315, 141, 342, 53, 487, 317, 172, 642, 251, 1077, 278, 1417, 935, 4223, 6115, 5629, 5588, 4990, 4815, 5022, 4761, 4956, 5375, -4990, 4559, 4094, 3323, 2699, 2381, 2154, 2438, 1677, 173, 966, 295, 284, 439, 369, 216, 382, -68, 306, 322, 519, 555, 473, 477, 1796, --467, 2951, 4403, 3700, 3826, 3866, 3976, 4049, 3794, 3492, 3331, 3359, 3371, 3253, 3106, 2811, 2545, 2314, 2644, 1339, 169, 1080, 248, 519, 484, -295, 236, 102, 843, 385, 377, 618, 455, 759, 762, 1464, 1031, 2204, 3239, 2954, 3404, 3457, 3627, 3739, 3661, 3612, 3519, 3192, 2860, 2452, -2343, 2136, 2043, 1837, 2307, 1582, 407, 549, 542, 606, 8, 574, -39, 1035, -307, 752, -16, 356, 502, 507, 320, 1240, -820, 2273, 2592, -2516, 2702, 2758, 2884, 3013, 2856, 2712, 2587, 2419, 2269, 2021, 2040, 2011, 2048, 1961, 2084, 1828, -394, 1232, 1005, 1021, 693, 1244, 1396, 1153, -673, 1288, 1758, 1125, 1281, 813, 719, 1794, 544, 3089, 2416, 2568, 2594, 2630, 2660, 2723, 2633, 2575, 2508, 2461, 2418, 2356, 2385, 2380, 2383, -2376, 2286, 2908, 398, -379, -1346, 888, -345, -1257, -1328, -1245, -965, -1276, -1328, -1239, -349, 1155, -1222, -447, 2815, 6056, 4288, 6384, 5667, 6014, -6054, 6312, 6409, 6500, 6294, 6167, 6034, 5925, 5827, 5752, 5692, 5635, 5587, 5525, 5250, 5893, 3929, 2483, -354, 4467, 2580, -110, -96, -33, 324, -95, 85, 207, 2692, 4960, 21, 2568, 2156, 6749, 6790, 7186, 7520, 8295, 8603, 8653, 8117, 7666, 7255, 6917, 6653, 6468, 6293, 6115, 6008, 5715, -5528, 5330, 1798, 3901, 3806, 3349, 2921, 3792, 3905, 3990, 3305, 4112, 4483, 3781, 4189, 3477, 3610, 5365, 4167, 6270, 7572, 7963, 8773, 10316, 10891, -11083, 10102, 9219, 8518, 7866, 7368, 6983, 6640, 6285, 6087, 5392, 5222, 3890, 2647, 2325, 2456, 2369, 1461, 2299, 1257, 2773, 1340, 2493, 1607, 2318, -2463, 2785, 2788, 4296, 3290, 6371, 7932, 8744, 10194, 12743, 13745, 13796, 11965, 10431, 9234, 8258, 7471, 7003, 6512, 6022, 5743, 4918, 4333, 3074, 1116, -1790, 494, 897, 721, 584, 409, 204, 869, 506, 1065, 1345, 1729, 1941, 2135, 3729, 5170, 8455, 10492, 11656, 12908, 13863, 14708, 15503, 15876, 15262, -12881, 12700, 11940, 10966, 10241, 9355, 8546, 6944, 5997, 4096, 1589, 2081, 1379, 987, 532, 464, 488, 657, 1004, 873, 1309, 1366, 2289, 2292, 3147, -4207, 4198, 8040, 12668, 13626, 15226, 16011, 16528, 16489, 16427, 15608, 14061, 13727, 13212, 12759, 11504, 10229, 9292, 7483, 6750, 4491, 2560, 2286, 1788, 1806, -1409, 838, 826, 739, 656, 936, 919, 1885, 1874, 3667, 3615, 5386, 4874, 10534, 15672, 16516, 17338, 16371, 15723, 15537, 14898, 15123, 16121, 16080, 15364, -14151, 12301, 10547, 9206, 7299, 6625, 4267, 3275, 2921, 2037, 1817, 1499, 1113, 862, 1030, 1502, 1088, 1112, 1311, 1054, 3610, 2706, 5476, 6110, 12148, -15191, 15248, 13909, 14418, 15184, 16065, 16090, 15868, 14945, 14642, 13864, 12534, 11409, 9903, 8128, 6692, 6118, 4810, 2086, 3011, 2665, 2037, 1775, 1197, 1352, -961, 2620, 1645, 1275, 2381, 1663, 3932, 2851, 5259, 6766, 11931, 14483, 14758, 14428, 14070, 13951, 14734, 14007, 14202, 14656, 13643, 12446, 11211, 9266, 7809, -6833, 6777, 6957, 6024, 2720, 3960, 2219, 2006, 2375, 1850, 1305, 1776, 950, 1864, 2071, 2825, 3075, 3056, 3380, 7405, 4074, 9808, 11798, 11291, 11354, -11948, 12255, 12435, 12097, 11501, 10997, 10570, 10082, 9395, 8693, 7890, 7206, 7141, 7673, 5278, 3180, 4536, 3001, 3105, 2423, 1727, 1660, 1265, 3158, 2130, -2232, 2953, 2807, 3949, 4107, 6382, 5618, 7952, 9590, 9579, 10459, 10777, 11154, 11483, 11161, 10896, 10562, 9759, 8952, 7954, 7644, 7153, 6744, 6329, 6941, -5809, 3667, 3437, 3252, 3209, 1699, 3078, 1361, 3978, 1346, 3150, 1715, 2432, 3092, 3455, 3518, 5534, 1558, 7993, 8088, 8211, 8530, 8728, 9010, 9370, -8995, 8692, 8409, 8025, 7675, 7136, 7062, 6917, 6868, 6716, 6697, 6553, 1758, 5187, 5185, 4779, 4183, 5492, 5761, 5713, 4540, 5855, 6255, 4968, 5498, -4487, 4650, 6760, 5462, 8783, 7592, 7985, 8009, 8116, 8184, 8331, 8120, 7985, 7828, 7721, 7620, 7489, 7528, 7514, 7490, 7483, 7204, 8307, 5062, 3025, --932, 5996, 3201, -559, -620, -525, 53, -403, -379, -172, 3242, 6571, -480, 2987, 8715, 3420, 5574, 2367, 3261, 3228, 3390, 3379, 3383, 3382, 3359, -3345, 3341, 3313, 3270, 3189, 3128, 3077, 3025, 3001, 3052, 2356, 5364, 6150, 6212, 4732, 6031, 6071, 6205, 6148, 5900, 6321, 6475, 6446, 6144, 4511, -6416, 6575, 7128, 3862, 3508, 3991, 4206, 4267, 4277, 4234, 4134, 4092, 4113, 4051, 3891, 3638, 3428, 3296, 3143, 3162, 2830, 3291, 5619, 3742, 4077, -3804, 3995, 3528, 3325, 3663, 4211, 3529, 2927, 3736, 3829, 4585, 4911, 3755, 5540, 4332, 3255, 4532, 4993, 5154, 5131, 5062, 4989, 4941, 4888, 4747, -4506, 4044, 3669, 3378, 3066, 3050, 2398, 3220, 3995, 3335, 3227, 2831, 3017, 2505, 2858, 2064, 3286, 2201, 3236, 3131, 3476, 3709, 4406, 4214, 5631, -4866, 3630, 4999, 5784, 6092, 6081, 5814, 5552, 5421, 5434, 5284, 4806, 4037, 3471, 3049, 2616, 2435, 1946, 2434, 2760, 1683, 1776, 1196, 869, 667, -721, 660, 663, 929, 1025, 1499, 2112, 2963, 3010, 3450, 6701, 3527, 3360, 5517, 6770, 6701, 7088, 7611, 8254, 8350, 8065, 7442, 7149, 7350, 6265, -5657, 5159, 4930, 3727, 3649, 3805, 2349, 2181, 1561, 1347, 917, 913, 899, 1155, 1196, 1453, 2090, 2142, 3337, 3551, 5217, 8662, 7154, 4259, 6493, -7234, 8008, 8734, 9209, 10330, 10438, 10068, 9564, 8395, 6745, 5591, 4769, 4010, 4381, 3752, 4380, 4762, 3461, 2869, 1665, 1251, 1184, 980, 1135, 1327, -1507, 1803, 2408, 3228, 3578, 5117, 5742, 9474, 7923, 3191, 4254, 3022, 5326, 6394, 7544, 9374, 9851, 8272, 5647, 3726, 2621, 2534, 2852, 3412, 3530, -2553, 3992, 4324, 3377, 3874, 2706, 2247, 2156, 1855, 1869, 2637, 1753, 2059, 2575, 4205, 4191, 7061, 5695, 9802, 5904, 1152, 3628, 4052, 6309, 7906, -9713, 9097, 8066, 6636, 5833, 5125, 4553, 4285, 3970, 3185, 3199, 2546, 4102, 5320, 4251, 3976, 3157, 2686, 2231, 1592, 2118, 4294, 2483, 2189, 2262, -3189, 3525, 5412, 5730, 8832, 4926, 3560, 6296, 6705, 8939, 9753, 9818, 9178, 7957, 6204, 5484, 4886, 4536, 4258, 4260, 3934, 4833, 4483, 5483, 5964, -4771, 4287, 3857, 3552, 2870, 2355, 2566, 3277, 3088, 3365, 3744, 4067, 4508, 5600, 5614, 11045, 7131, 6177, 8316, 8720, 9782, 9962, 9607, 9717, 9645, -9137, 7683, 6349, 5385, 4600, 4375, 4428, 5525, 5345, 6177, 6771, 5370, 5657, 4496, 3574, 3060, 3036, 3076, 3541, 3593, 3711, 3774, 4558, 5224, 5909, -6784, 7902, 7988, 7467, 8524, 8729, 8691, 8523, 8529, 8023, 7494, 7036, 6963, 6887, 6747, 6695, 6692, 6411, 6260, 5492, 5993, 6611, 5862, 5431, 5016, -4783, 4627, 4438, 4287, 4924, 4114, 4686, 4345, 5190, 5849, 6835, 7032, 9086, 7595, 7027, 7380, 7360, 7541, 7659, 7852, 7849, 7944, 7968, 8007, 8015, -8123, 7792, 7493, 7185, 7061, 6630, 6810, 7373, 6451, 6854, 6513, 6483, 6130, 6006, 6610, 6873, 6508, 5883, 6309, 6595, 7144, 7557, 7128, 8659, 5856, -6434, 6447, 6429, 6491, 6514, 6549, 6557, 6567, 6585, 6585, 6580, 6622, 6508, 6462, 6372, 6313, 6213, 5705, 8481, 8916, 7732, 7933, 8821, 7866, 8017, -7877, 7704, 8046, 8178, 8103, 8931, 7951, 8019, 9199, 6887, -1424, -235, -2149, -1300, -1648, -1589, -1803, -1881, -2033, -1781, -1649, -1506, -1446, -1403, -1398, --1418, -1415, -1401, -1355, -1055, -1767, 64, 1818, 5741, -713, 1545, 5279, 5213, 5120, 4778, 4919, 4942, 4829, 1467, -1226, 5402, 1808, 3056, -2041, -1827, --2174, -2311, -2975, -3225, -3429, -2707, -2209, -1770, -1540, -1435, -1481, -1566, -1563, -1532, -1302, -1073, -1089, 2808, 282, 36, 615, 963, -254, -318, -529, -254, -668, -925, 77, -234, 794, 646, -1062, 266, -1084, -2177, -2277, -2725, -4223, -4714, -5262, -3816, -2742, -2014, -1605, -1467, -1543, -1704, -1713, -1665, --1082, -905, 204, 1080, 1320, 903, 733, 1449, 435, 1566, 24, 1399, 223, 1096, 594, 868, 852, 919, -295, 1374, -659, -1829, -2462, -3540, -6121, --7069, -7594, -4900, -2956, -1648, -1055, -770, -1105, -1459, -1514, -1489, -838, -232, 607, 1832, 1035, 1642, 932, 757, 681, 678, 858, 439, 630, 372, -564, 814, 939, 1076, 57, -750, -3813, -4361, -4856, -5344, -5979, -6536, -7524, -7636, -6777, -3090, -4097, -4101, -3632, -3859, -3618, -3145, -1689, -1018, 321, -2335, 1367, 1158, 1060, 1069, 863, 901, 743, 507, 337, 154, 489, 12, 454, 195, -80, 2942, -1712, -7780, -8141, -7758, -7517, -7612, -8196, -7857, --7211, -5681, -6479, -7040, -7699, -6740, -5500, -4480, -2115, -1315, 505, 1981, 1435, 1036, 354, 170, 400, 344, 665, 1380, 1046, 1493, 1437, 1835, 583, -1779, 487, 2032, -4728, -9703, -9020, -7334, -5163, -3914, -5084, -4500, -6038, -9402, -11027, -11297, -10443, -8651, -6919, -5558, -3193, -2129, 364, 980, 1268, 1942, -1177, 1218, 1705, 1959, 1817, 2347, 1417, 1458, 1709, 2865, 691, 2523, 272, 407, -5806, -6595, -4566, 1590, -881, -2965, -5334, -6213, -7526, -8004, -9093, --9272, -8372, -7405, -5814, -3885, -2319, -1574, -208, 2902, 1743, 1771, 1766, 1414, 1595, 754, 1656, 3172, 1627, 1476, 904, 2167, 489, 2501, 1181, -600, --5629, -5281, -4271, -2495, -1683, -1607, -4044, -4502, -6287, -7948, -7889, -7211, -6257, -4342, -2893, -2028, -1852, -1799, -356, 3467, 1513, 2760, 2622, 1686, 1895, -1925, 1768, 3485, 1948, 1702, 894, 1048, 1578, 2050, -2298, 3681, -2501, -3579, -1815, -555, -841, -1321, -2483, -3081, -3203, -3293, -3823, -3868, -3382, -2842, --2037, -1377, -860, -1679, 1003, 3536, 1101, 2456, 1638, 1983, 2381, 2392, 2946, 1211, 2516, 2315, 1214, 2021, 1215, 1849, -126, 2762, 293, -1070, -202, --410, -1326, -2061, -2551, -2644, -2779, -2835, -2073, -1386, -531, -249, 282, 670, 734, -484, 551, 2891, 2824, 2682, 2442, 3995, 2085, 4086, 926, 3896, -1891, 3804, 2950, 2995, 3083, 3783, 2054, 7930, -453, -359, -324, -470, -410, -429, -569, -201, 140, 411, 842, 1231, 1889, 1664, 1501, 1266, 1131, -853, 725, 6745, 1875, 1581, 1966, 2391, 274, 101, 236, 1831, 261, -253, 1473, 1198, 2951, 2984, 469, 2090, -2440, -736, -1177, -1154, -1175, -1176, --1215, -987, -808, -601, -483, -377, -189, -412, -514, -621, -716, -469, -2061, 2299, 5041, 10454, 684, 4512, 9667, 9783, 9639, 8946, 9506, 9542, 9249, -4628, 99, 10173, 5410, -1556, 1100, -660, 1862, 1024, 1109, 907, 1052, 1068, 990, 971, 933, 899, 880, 887, 961, 963, 1001, 1049, 1118, 1048, -1635, -595, -1626, -2263, -139, -1571, -2201, -2286, -2265, -2012, -2419, -2523, -2458, -1631, 131, -2453, -1981, -2300, 1328, 1416, 1133, 839, 1066, 1029, 846, -945, 916, 837, 767, 832, 1052, 1069, 1149, 1288, 1375, 1585, 1267, -1114, 500, 164, 180, -26, 356, 596, 433, -86, 481, 879, 237, 297, --370, -502, 875, -245, 1504, 2508, 1435, 712, 1001, 1048, 594, 667, 540, 503, 388, 370, 725, 710, 911, 1211, 1408, 1930, 1160, 268, 555, -336, 579, 201, 523, 195, 1095, 6, 708, -264, 96, 2, 139, -371, 448, -184, 1728, 2899, 1805, 559, 578, 414, 25, 687, 976, 929, -769, 927, 1477, 1380, 1531, 1896, 2203, 2466, 1867, 841, 1242, 762, 977, 983, 853, 784, 684, 1054, 568, 733, 671, 553, 176, 396, 1373, --263, 4758, 5406, 3233, 2096, 3096, 2666, 1479, -1470, -3140, -3260, -3417, -3666, -4353, -3380, -2522, -1735, -826, 412, 650, 415, 1071, 904, 729, 513, -616, 784, 801, 588, 371, 504, 427, 1432, 804, 1234, 611, -2702, 378, 5256, 3491, 3890, 2782, 1079, -423, -3803, -5136, -5391, -5622, -4619, -2596, --989, 217, 1123, 1171, 1625, 818, -426, 69, 39, 746, 717, 227, 462, 608, 1302, 1085, 1093, 1317, 603, 1231, 211, 532, -3033, 956, 9297, -8878, 10518, 7894, 6487, 3656, -295, -2787, -2630, -24, 1916, 3144, 3198, 2927, 2255, 2585, 3631, 1670, 688, 1131, 26, 547, 575, 679, 1242, 1388, -1872, 1118, 771, 715, -671, 233, -2589, 755, -1696, 5466, 10730, 8798, 9828, 6548, 3615, -322, 57, 592, 1577, 1843, 1949, 2053, 1635, 1800, 3034, -3016, 3564, 1587, -151, 881, 668, 868, 809, 1018, 767, 989, 2060, 1313, 1183, 1842, 905, 1743, 143, 1182, -668, 3625, 5130, 2881, 3085, 256, --1419, -2843, -2843, -1778, 792, 1725, 2416, 2539, 2983, 2819, 2876, 1010, 767, -179, -597, 35, 285, 337, 200, 797, 1330, 1331, 1501, 849, 582, -201, 851, 1123, 479, 2248, -4159, -213, -42, -1434, -1408, -2512, -3054, -3280, -3410, -3523, -3001, -1381, 373, 1656, 2721, 2848, 2252, 283, -427, -1307, --1121, -486, -784, 95, 766, 1178, 1272, 1283, 129, 719, 644, 563, -205, -563, -531, -960, -772, -2139, -2100, -2352, -2475, -2307, -1960, -1704, -848, -35, 877, 927, 943, 1109, 752, 479, 534, 272, 208, -533, -920, -498, -355, -142, 349, -69, 542, -26, 239, 495, 644, 874, 575, 420, -105, -621, -1390, -2738, -2166, -2297, -2244, -2286, -2352, -2477, -2468, -2569, -2583, -2550, -2456, -2402, -2210, -1995, -1850, -1861, -1727, -1798, -170, -970, -1375, --1218, -1046, -1435, -1318, -1725, -1636, -1713, -1558, -1497, -1677, -1655, -1720, -2189, -2635, -2331, -2198, -2287, -2223, -2232, -2203, -2176, -2138, -2090, -2056, -1996, --1950, -1909, -1940, -1999, -2016, -2003, -1880, -2057, -2463, -2365, -103, -2587, -2484, -742, -812, -734, -730, -825, -848, -842, -2539, -2831, -346, -2442, -2504, -1652, 2452, 1634, 1707, 1754, 1716, 1686, 1643, 1654, 1452, 1346, 1277, 1300, 1334, 1398, 1447, 1490, 1519, 1522, 1473, 1345, 2131, 1972, 529, 2126, -2035, 650, 794, 825, 802, 944, 969, 989, 2075, 2245, 679, 2238, 2105, 2417, 2167, 2390, 2286, 2208, 1999, 1980, 1424, 1190, 1112, 1162, 1253, -1444, 1582, 1689, 1698, 1734, 1507, 1709, 1624, 1458, 1773, 1468, 1465, 1617, 1599, 1851, 1943, 1784, 1571, 1600, 1644, 1680, 1975, 2121, 3316, 2871, -2603, 2821, 2632, 2742, 2401, 2458, 1183, 392, 144, 217, 523, 932, 1286, 1597, 1667, 1743, 1358, 1513, 1708, 1188, 1273, 1254, 1234, 1082, 1194, -1247, 1558, 1183, 1376, 1529, 1445, 1641, 2226, 2765, 3260, 2963, 2558, 3136, 3061, 3171, 2689, 2677, 777, -167, -304, 41, 311, 1000, 1534, 1838, -1831, 1794, 1333, 1410, 1594, 870, 930, 849, 866, 604, 806, 772, 959, 853, 837, 1088, 953, 1441, 1787, 2798, 7089, 8136, 6881, 6889, 6545, -5418, 4300, 3947, 1860, -193, -4336, -3156, -2331, -1360, -445, 665, 1638, 1772, 1449, 1128, 902, 666, 1141, 774, 661, 500, 683, 856, 1064, 1182, -1685, 2300, 3177, 3983, 4378, 5345, 3653, 6714, 10139, 10622, 7239, 4900, 3935, 5611, 3931, 3183, 1925, 3207, 4174, 5222, 5158, 4566, 3746, 2716, 2121, -2139, 1390, 989, 1192, 1135, 1136, 773, 1044, 1053, 1250, 1274, 1228, 1079, 1314, 2044, 2150, 3631, 5742, 9033, 5310, 2384, -4358, -2576, -1443, 1997, -2467, 3702, 5224, 5760, 5717, 5440, 5606, 5884, 6130, 5293, 4000, 3299, 3076, 2087, 1268, 1358, 946, 316, 493, 860, 1867, 1309, 1279, 1380, 1645, -2542, 3544, 3319, 6330, 3396, -5274, -6550, -12804, -7272, -4112, -611, 83, 1606, 2775, 4504, 5531, 5776, 5750, 5361, 4804, 4624, 4056, 3577, 2260, 1699, -1445, 1287, 1333, 1183, 1310, 1356, 1374, 1352, 1589, 1354, 1721, 1585, 2398, 2438, 3957, -36, -6034, -5715, -7002, -5459, -4492, -1889, -496, 1246, 2288, -3502, 4233, 4717, 4825, 4954, 5204, 4415, 3148, 1751, 435, 653, 696, 337, 541, 442, 1203, 1089, 636, 821, 1032, 1046, 1712, 2046, 2206, 2221, -2590, -883, -3049, -3016, -4192, -3071, -2250, -791, 1463, 2980, 3919, 4411, 4431, 4238, 4089, 3739, 3410, 2181, 1758, 773, 64, 550, 177, 535, 526, -577, 680, 438, -17, -67, 302, 1179, 569, 457, 497, 669, -1603, -1562, -2200, -2606, -3452, -2069, -1071, -248, 566, 1307, 2143, 2280, 2582, 2967, -2387, 1830, 1303, 1080, 882, 667, 485, 309, 258, 245, 28, 255, 9, 232, 291, 209, 117, 119, -82, -43, -314, -1015, -1787, -1491, -1792, --1803, -1981, -2208, -2535, -2744, -2679, -2601, -2475, -2397, -2322, -2209, -2115, -1917, -1785, -1581, -1473, -1237, -1585, -988, -659, -730, -547, -167, -297, -205, --426, -446, -508, -747, -900, -1340, -1297, -1188, -1424, -1303, -1406, -1410, -1429, -1519, -1575, -1696, -1675, -1704, -1745, -1720, -1702, -1705, -1580, -1488, -1399, --1328, -1293, -1121, -1062, -1368, -2499, -775, -1166, -2244, -2252, -2283, -2284, -2268, -2318, -2292, -1307, -843, -2697, -1707, -1283, 583, 370, 297, 574, 457, -546, 282, 208, 230, 371, 463, 535, 597, 643, 649, 662, 645, 620, 545, 574, 449, 337, 820, 2099, 223, 738, 1963, 1949, 1955, 1940, -1898, 1906, 1893, 745, 118, 2254, 1022, 1929, 165, 459, 259, 301, -316, -397, -187, 100, 356, 538, 751, 849, 836, 902, 846, 749, 567, -586, 371, 1219, 791, 602, 843, 859, 527, 616, 466, 632, 405, 401, 645, 619, 996, 1074, 539, 1033, 240, -182, -87, 143, -1030, -1368, --876, -318, 156, 315, 679, 1001, 1098, 1302, 1230, 1062, 769, 644, 562, 753, 814, 891, 785, 834, 604, 944, 774, 925, 670, 759, 748, -896, 949, 1375, 858, 1252, -141, -812, -891, -502, -1781, -1931, -1203, -680, -329, -29, 421, 781, 877, 1233, 1207, 936, 593, 573, 424, 973, -1139, 855, 910, 855, 701, 803, 860, 919, 523, 352, 511, 755, 1142, 1493, 285, 2905, -1289, -2743, -2335, -3543, -6176, -6855, -5954, -2409, 302, -1459, 1877, 2548, 3550, 3686, 3439, 3180, 2160, 1717, 1248, 879, 1149, 836, 923, 811, 485, 781, 899, 1081, 1014, 1160, 1672, 919, 1585, 1621, -2126, 4750, -383, -8838, -9055, -11561, -9377, -7044, -4745, -1140, 961, 2411, 2963, 2889, 2177, 1743, 1392, 1239, 882, 826, 1159, 1673, 1381, 1198, 888, -757, 786, 1066, 1060, 1104, 888, 1004, 483, 1289, 320, 1555, 660, 1968, -6286, -17499, -16741, -16141, -12837, -11158, -9276, -5460, -3171, -2404, -2872, -2628, --1934, -1172, -641, -265, 37, -5, 1233, 1821, 1628, 1540, 1193, 993, 432, 291, 614, 1695, 1169, 1171, 1055, 2537, 253, 3012, -1575, -3811, -14092, --15154, -13422, -10786, -10932, -10394, -8703, -8450, -8339, -7846, -7553, -6313, -4488, -2278, -867, -742, 229, 391, 1003, 1774, 622, 799, 922, 974, 745, 1435, -1167, -312, 465, 716, -568, 833, -1370, 152, -2530, -6258, -9697, -9307, -8985, -8360, -6092, -3938, -2659, -1944, -2839, -5073, -5609, -5372, -4188, -3608, -2381, --1047, 470, 843, 685, 1312, 945, 1144, 856, 717, 505, 723, 548, 152, 355, 101, -516, -1489, -1812, -2090, -6782, -1765, -5417, -5060, -4867, -4398, --3212, -2045, -1157, -1251, -751, -474, -1161, -1777, -1735, -2092, -1834, -1194, -97, 139, 807, 598, -25, 213, -190, -30, 202, 153, 183, 141, 100, -143, -173, 28, -713, -1135, -2362, -2805, -2332, -2201, -2527, -2617, -2856, -3197, -3468, -3844, -4277, -4748, -4432, -4082, -3742, -3345, -2925, -2736, -2401, -2369, --1378, -175, -384, -272, -153, 173, -141, 96, -353, -217, -414, -445, -563, -1207, -1665, -2230, -2328, -1258, -1028, -1068, -1241, -1322, -1405, -1433, -1518, --1433, -1307, -1224, -1156, -1146, -1032, -1100, -1202, -1244, -1153, -1071, -1250, -1088, -1105, -1143, -1039, -938, -871, -803, -910, -770, -722, -428, -412, -538, --672, -913, -749, -1743, -597, -771, -829, -869, -940, -1005, -1080, -1105, -1156, -1190, -1261, -1324, -1405, -1311, -1196, -1103, -1096, -1016, -938, -1695, -1553, --1049, -1430, -1464, -892, -933, -905, -947, -1011, -1103, -1095, -1416, -1288, -1279, -1638, -799, 1979, 1456, 1693, 1479, 1546, 1493, 1734, 1909, 2116, 2291, -2379, 2372, 2275, 2193, 2128, 2042, 1968, 1908, 1849, 1733, 1936, 1608, 929, -240, 1790, 965, -181, -150, -138, -19, -146, -150, -113, 995, 1807, --111, 791, 516, 1385, 1045, 1123, 1146, 1810, 2428, 2968, 3476, 3565, 3301, 2974, 2739, 2603, 2408, 2267, 2178, 1985, 1847, 1908, 753, 1573, 1601, -1315, 1228, 1535, 1637, 1739, 1473, 1642, 1584, 1250, 1381, 1097, 1265, 1424, 401, 403, 59, 176, 221, 1368, 2526, 3549, 4763, 5282, 5049, 4569, -4006, 3692, 3157, 2746, 2477, 1987, 1879, 1543, 1384, 1434, 1356, 1285, 1009, 1206, 1001, 1475, 1128, 1058, 689, 764, 867, 888, 800, 619, -140, --59, -570, -437, -183, 1820, 3646, 5205, 6716, 6923, 5877, 4752, 4100, 3725, 3133, 2716, 2554, 2022, 1724, 1448, 1023, 1315, 1081, 1104, 949, 808, -944, 816, 1019, 492, 421, 285, 556, 744, 622, 18, -2182, -4657, -5393, -5517, -5998, -3565, -1174, 1282, 4077, 6709, 10087, 9581, 8827, 7319, 6393, -5001, 3528, 2403, 2003, 2297, 1969, 1852, 1476, 1271, 1067, 697, 1034, 1052, 977, 817, 583, 491, -189, -630, -798, -838, -3415, -6420, -8099, -8163, --4598, -1640, -822, -3076, -964, 545, 2813, 2374, 2679, 3196, 3172, 3264, 3245, 2743, 2362, 1750, 1504, 1604, 1214, 1159, 993, 739, 955, 1021, 1233, -990, 883, 768, 664, 7, -687, -2732, -8157, -8244, 2202, 5563, 11859, 4940, 343, -4784, -5700, -5147, -2513, -308, 1694, 3002, 2256, 1758, 1515, 1745, -2328, 1618, 1241, 1361, 1334, 1265, 1148, 919, 758, 912, 1433, 628, 239, 164, -1020, -1916, -4296, -2855, -7108, 2692, 13081, 11163, 11923, 6887, 4446, -1125, 1476, 1342, 1044, 989, 1032, 1130, 1272, 1450, 1559, 1121, 1051, 1103, 609, 940, 873, 829, 764, 627, 1289, 1060, -113, 675, 329, 231, --739, 250, -2330, -2544, -2372, 5247, 9412, 7369, 7574, 4836, 3567, 2693, 1885, 2017, 3349, 3083, 2477, 1658, 707, -66, -784, 255, 1122, 1662, 1245, -1229, 674, 910, 1014, 887, 692, 702, 76, 244, 18, 485, -465, -1131, -2000, 1845, -4926, 3243, 4661, 2954, 3141, 1769, 1330, 973, -300, -1265, --1486, -1008, -300, 147, -145, -414, -854, -39, 482, 384, 368, 793, 913, 551, 372, 538, 256, 123, 756, 627, 469, 109, -161, 144, -586, -170, 727, 933, 2018, 1995, 2690, 2013, 1452, 812, 454, 157, -234, -924, -1724, -2623, -2194, -1883, -1581, -1367, -701, -884, -1340, -1158, -939, -514, --651, 20, -505, 651, -443, 276, -465, -55, -65, -131, -328, 707, -1765, 2152, 2287, 2257, 2396, 2485, 2721, 2932, 2640, 2286, 1959, 1588, 1288, -732, 854, 825, 897, 891, 1011, 990, -1283, 708, 826, 652, 527, 1476, 1603, 1510, 954, 1621, 1756, 1173, 1296, 675, 642, 1520, 1307, 2847, -2073, 2295, 2286, 2368, 2401, 2507, 2339, 2258, 2169, 2091, 2020, 1913, 1958, 1949, 1946, 1950, 1822, 2387, 633, -536, -2624, 1425, -201, -2331, -2354, --2215, -1917, -2083, -2021, -1864, -124, 1788, -2261, -252, 2532, -916, 500, -1716, -1116, -1267, -1192, -1069, -972, -880, -897, -875, -832, -864, -884, -915, --901, -899, -895, -899, -742, -1340, 760, 1900, 3272, 211, 1780, 3079, 3161, 3127, 2837, 3070, 3072, 2974, 1728, -156, 3008, 1844, 1685, -1658, -1753, --1629, -1481, -1220, -1067, -933, -973, -939, -840, -907, -952, -1014, -1006, -969, -965, -882, -946, -661, 2016, 153, 389, 454, 737, 147, 50, 160, -753, 54, -280, 275, -121, 404, 443, -749, -261, -1875, -2672, -2439, -2362, -1697, -1246, -967, -1020, -800, -429, -518, -671, -919, -971, -983, -1034, --814, -1037, 31, 842, 747, 590, 375, 954, 284, 1169, 105, 1352, 390, 1097, 659, 356, 184, 270, -495, -270, -2136, -2587, -2340, -2351, -1757, --1310, -985, -985, -615, -159, -179, -412, -736, -839, -854, -900, -840, -771, 189, 1167, 299, 1230, 524, 483, 446, 725, 953, 643, 783, 525, -547, -223, -367, -252, -309, -2914, -2844, -2692, -3217, -1671, -277, 225, -183, -1339, -2162, -1668, -1094, -936, -862, -1871, -1940, -1511, -757, -847, -91, -1511, 513, 881, 769, 901, 690, 875, 825, 682, 558, 317, 193, 341, 138, -582, -1787, -4610, -1569, 5681, 6404, 6316, 1428, -1639, -3448, -4451, --4568, -4667, -3103, -2080, -1500, -892, -557, -721, -27, -248, 543, 1375, 1013, 966, 650, 664, 574, 746, 892, 1121, 711, 458, 115, -459, -907, --1832, -1845, 6, 5964, 8539, 4359, -2296, -2853, -2744, -902, -1354, -921, -1556, -2518, -3725, -4754, -4050, -2653, -591, -221, -829, 435, 746, 327, 1157, -918, 1004, 875, 1124, 992, 749, 302, 101, 142, -711, 236, -846, 656, 6001, 7693, -1539, -3485, -9819, -3729, -163, 3424, 2630, 2802, 2475, 3515, -3113, 1544, 550, -276, -535, -866, -1474, -388, 1478, 483, 346, 188, 122, 185, 699, 1172, 851, 1211, 969, 437, 241, 574, 552, 1813, 6184, -2708, -2543, -2018, -3491, -2082, -1843, -420, 352, 1906, 3196, 4052, 4131, 3408, 2926, 1896, 360, -435, -1416, -749, 793, -442, 162, 517, 519, 523, -741, 724, 817, 450, 707, 1297, 1750, 1924, 2701, 3983, 4882, 1848, 43, 811, 185, -258, -809, -808, 1116, 2064, 2380, 2328, 1804, 919, 305, -15, -2, -164, -251, 109, 810, 593, 750, 685, 729, 723, 433, 329, 384, 288, 320, 614, 908, 1227, 1362, 1754, 1477, 1364, 701, 852, -447, 809, 1173, 1414, 1673, 1961, 2478, 2572, 2743, 2927, 2762, 2521, 2358, 2131, 2175, 1388, 560, 1135, 1157, 979, 674, 1026, 860, 807, 1143, -666, 936, 575, 1045, 1389, 1996, 1493, 2787, 1064, 747, 869, 783, 737, 581, 512, 657, 782, 894, 1021, 1131, 1191, 1290, 1460, 1601, 1631, -1717, 1974, 1457, 1362, 1499, 1691, 1565, 1376, 1083, 1346, 1557, 1128, 769, 1132, 1063, 1469, 1573, 1073, 2087, 323, 766, 717, 711, 711, 724, -686, 835, 943, 1042, 1159, 1281, 1434, 1377, 1315, 1263, 1282, 1199, 1149, 2323, 2817, 2504, 1866, 2722, 2878, 2955, 2846, 2692, 2890, 2932, 2830, -2680, 1596, 2800, 2833, 848, -457, -1547, 165, -192, -121, -116, -417, -640, -945, -955, -947, -859, -726, -623, -551, -485, -443, -425, -382, -360, --116, -1488, -1701, -786, -1327, -1704, -847, -932, -921, -813, -1028, -1095, -1076, -1776, -1163, -1089, -1935, -2140, -145, 555, 285, 263, -538, -1198, -1955, --2134, -2041, -1609, -1154, -842, -723, -555, -489, -464, -398, -168, -463, -1083, -537, -844, -603, -639, -628, -419, -615, -807, -496, -232, -462, -600, --902, -1195, -407, -1230, 10, 2027, 1244, 1236, -444, -1814, -3293, -3644, -3434, -2788, -2070, -1447, -1214, -804, -647, -540, -327, 41, -307, -667, -371, --469, -321, -338, -202, -81, 293, -190, 335, -88, 48, -415, -503, -880, -312, -1009, 605, 3201, 2218, 1907, -710, -2759, -4997, -5517, -4881, -3233, --1912, -1073, -914, -615, -425, -406, -107, 204, 160, 139, 485, 395, 423, 477, 486, 657, 819, 973, 669, 716, 695, 70, -532, -105, 428, --956, 2964, 4682, 4124, 3675, 737, -1629, -4109, -4688, -5605, -6347, -5641, -4875, -3527, -2593, -1957, -1623, -799, -143, -336, -541, -129, -36, 252, 447, -504, 713, 674, 577, 545, 633, 470, 943, 547, 300, -980, 615, 2153, 477, -809, -3770, -4052, -3265, -966, -2431, -4067, -6756, -6083, -6114, -6246, --4970, -3599, -2114, -1453, -1048, -900, -213, 60, 273, 443, 552, 577, 790, 840, 814, 244, -141, -488, -906, -699, -556, 474, 3515, -256, -10908, --11401, -11299, -3213, 1740, 5748, 5586, 4138, 1545, 859, -65, -977, -696, -1157, -2057, -2565, -2607, -1903, -1477, -1064, -549, -138, 344, 231, 1099, 1058, -170, 708, 795, 167, 1064, 840, 2118, -115, -879, -9875, -9913, -5841, -1227, -902, -687, 985, 1920, 2667, 3667, 2245, 1350, 931, 750, 304, -250, --190, -449, -1899, -1363, -1232, -1199, -779, -545, -498, 548, 788, 175, 690, 702, -330, 401, -915, 149, -739, -3473, -4766, -2037, -1808, -2352, -1019, -402, 1172, 2524, 2576, 1675, 1148, 1205, 1443, 1332, 1061, 950, -859, -1399, -2085, -1562, -999, -483, -339, -158, 448, 579, 700, 881, 847, 658, --85, -314, -496, -622, -4418, -111, -2983, -1772, -1427, -1315, -476, -174, -65, -627, -398, -108, -123, -16, 499, 1003, 1323, 1620, 769, 443, 25, --382, -46, -364, 499, 882, 668, 798, 771, 645, 311, 124, -47, 382, 150, 309, -534, -697, -531, -526, -519, -372, -499, -437, -180, -231, --274, -371, 202, 755, 1327, 1297, 1358, 1527, 1774, 1949, 2147, 1939, 1995, 1972, 1579, 1369, 890, 979, 341, 365, 306, 473, 332, 7, -310, --592, -772, 787, -635, -446, -464, -417, -343, -312, -376, -227, -42, 108, 313, 464, 789, 834, 911, 905, 851, 761, 789, 1603, 668, 263, -240, 144, -418, -339, -491, -344, -404, -309, -131, -148, 86, 62, -171, -674, -383, -137, -221, -195, -207, -192, -177, -94, -39, 29, 47, -67, 85, 37, 23, 31, 56, 138, 5, 6, 224, 1651, -449, -166, 1188, 1173, 1158, 1115, 1043, 999, 939, -270, -761, 1279, -223, -206, -609, 1350, 908, 911, 985, 892, 662, 531, 452, 431, 401, 372, 408, 434, 470, 443, 443, 436, 467, 422, 416, 936, 486, -1095, 1064, -611, -915, -799, -762, -746, -624, -592, -575, 697, 1326, -961, 730, 772, 1868, 1586, 1741, 1486, 903, 520, 363, 200, 153, 134, 193, 228, -300, 249, 259, 243, 349, 196, 473, 96, 306, 631, 335, 367, 688, 719, 973, 888, 941, 763, 621, 866, 804, 993, 1269, 2246, 2325, -2473, 2732, 2378, 1110, 404, 35, -217, -476, -649, -530, -363, -121, -173, -105, -107, 10, -188, 41, 382, 113, 92, 267, 353, 404, 443, -607, 732, 573, 711, 719, 842, 940, 1372, 1859, 3020, 3433, 3139, 3828, 3552, 1658, 253, -327, -896, -1015, -1026, -904, -771, -469, -542, -476, --435, -245, -628, -331, 361, -238, 212, 201, 298, 123, 553, 672, 692, 618, 582, 653, 1088, 1721, 1788, 2211, 2437, -25, -1327, -171, -1023, --121, 979, 2482, 995, -314, -2472, -2741, -2624, -2442, -1296, -819, -1223, -733, -940, -455, 80, -482, 214, 106, 406, 522, 636, 679, 660, 921, -1046, 1121, 589, 742, 603, 1571, 1163, -1948, -7255, -6613, -3523, 1055, 3774, 5871, 5658, 5117, 4850, 2663, 1451, 1042, 404, -143, -653, -1120, -1378, --859, -685, -224, 155, 173, 461, 649, 930, 949, 609, 390, 113, -165, 414, 338, 498, -504, -4242, -7069, -189, 5036, 11421, 8130, 6225, 4334, -5037, 5409, 7584, 8902, 9956, 10323, 9150, 7269, 4531, 2665, 1679, -475, -1213, -1216, -1394, -701, -454, -326, 698, 939, 34, 917, 822, 28, 173, --783, -1179, -1565, -5083, 1089, 10662, 10124, 11838, 6756, 4836, 2721, 4958, 6330, 7082, 6593, 6548, 6944, 5595, 4576, 3952, 2860, 2400, 968, -1169, -119, --277, -28, 259, 188, 757, 735, -269, 417, 224, -94, -385, 96, -972, -1912, -138, 4181, 6649, 6239, 6468, 2942, 1332, 382, -33, -128, 463, -1544, 1928, 1878, 2402, 2647, 2845, 2348, 2215, 1488, -474, 625, 369, 81, 388, 503, 611, 593, 771, 955, 787, 508, 258, -131, -945, 1424, --1726, 2692, 2867, 1922, 1154, 889, 863, 571, -633, -1387, -1459, -1048, -278, 390, 1003, 1075, 918, 929, 1005, 966, 810, 1086, 1243, 1198, 769, -632, 927, 947, 620, 626, 502, 316, -56, 174, 292, 727, 656, 74, 191, 320, 514, 556, 343, 130, 275, 334, 279, 54, -224, -533, --429, -245, -176, 93, -154, 625, 1435, 700, 539, 484, 665, 257, 316, 301, 305, 298, 170, 254, 286, 346, 314, 506, -717, 438, 460, -452, 424, 398, 494, 578, 503, 404, 316, 207, 159, 110, 92, 31, -38, 15, -88, -62, 593, 442, 668, 349, 538, 729, 738, 736, -562, 569, 410, 214, 238, 31, 74, 148, 780, 556, 356, 423, 418, 439, 417, 414, 307, 240, 190, 158, 114, 52, 98, 142, 175, -178, 240, 111, 563, 341, -351, 786, 490, -580, -588, -559, -533, -503, -470, -435, 314, 785, -635, 294, 528, -1565, -945, -2111, -1607, -1882, --1847, -1818, -1717, -1528, -1501, -1466, -1448, -1474, -1491, -1499, -1508, -1505, -1482, -1532, -1412, -1705, -986, -10, 1708, -1245, -56, 1612, 1622, 1611, 1442, -1547, 1567, 1484, 17, -1462, 1923, 309, 1519, -2401, -2471, -2635, -2677, -2669, -2440, -1875, -1735, -1597, -1570, -1599, -1580, -1524, -1530, -1567, -1577, -1690, --1625, -1665, 127, -928, -964, -591, -395, -834, -846, -925, -576, -917, -1007, -624, -761, -200, -71, -1196, -186, -2203, -4126, -3910, -3990, -3694, -3005, --1828, -1871, -1925, -1953, -2019, -2037, -1912, -1879, -1809, -1709, -1817, -1810, -1334, -956, -676, -604, -583, -143, -354, 206, -438, 134, -155, 258, -163, --10, -48, 334, -840, 684, -2935, -5228, -4973, -5161, -4971, -4208, -2282, -2164, -2258, -2429, -2358, -2118, -1663, -1463, -1494, -1502, -1799, -1566, -1411, -769, --666, -367, -215, -8, 56, 348, 705, 445, 566, 426, 344, 385, 692, 704, -399, -3172, -6654, -7248, -7505, -6113, -3757, -2174, -960, -1671, -1757, --1759, -2731, -3228, -3686, -3847, -3450, -2555, -2442, -2158, -2142, -1051, -546, -342, -98, 161, 469, 585, 605, 508, 378, -47, -458, -1403, -1552, -2178, --2358, -3227, -3576, 1060, 2419, 4014, 434, -1457, -2329, 570, 3728, 7222, 7489, 7550, 6820, 5031, 2884, 737, -242, -446, -723, -1312, -975, -748, -281, -100, 207, 698, 758, 385, 321, 211, -5, 134, -602, -1092, -1901, -2095, 2324, 6671, 3424, -610, -3661, -3928, -3159, -1039, 976, 1346, 355, -90, -96, 978, 1649, 2145, 1449, 872, 653, 29, -337, -906, -843, -763, -673, 256, 539, -241, 554, 255, -417, -964, -624, -1555, -656, 3802, 4602, --3398, -6487, -10433, -7600, -6157, -4475, -6303, -7196, -8260, -5737, -4281, -3672, -3141, -2344, -1286, -1067, -826, 623, 902, 216, 583, 438, 582, 552, 660, -589, -339, 401, 440, 325, 237, 78, 386, 1445, 2363, -2410, -7045, -5867, -5070, -4422, -4864, -5441, -6107, -6353, -6766, -6513, -6056, -5061, -3962, -2836, --2042, -794, -529, 472, 1383, 599, 818, 551, 172, -215, 105, 116, 353, 212, 30, -237, 342, 665, 1172, 581, 2616, -1165, -2660, -1883, -1642, --1993, -2081, -1978, -561, -193, -587, -1202, -2179, -3248, -3491, -3224, -2558, -1547, -1454, -404, 683, -521, -246, -610, -335, 43, 124, 261, -148, 231, -284, 157, 5, -329, -155, -390, -494, -370, -1035, -1525, -2284, -2091, -2000, -2044, -1878, -1686, -1363, -1225, -1003, -753, -628, -554, -578, -1001, -1603, --1696, -893, -699, -672, -556, -40, -341, 218, -247, 472, 31, 223, -42, 130, 251, 543, -56, 704, -1014, -1103, -1111, -1188, -1272, -1410, -1495, --1365, -1258, -1131, -1005, -892, -779, -880, -937, -927, -832, -674, -738, 269, -596, -606, -298, -180, -555, -712, -723, -379, -829, -843, -580, -679, --358, -516, -877, -671, -1504, -1177, -1281, -1285, -1344, -1381, -1463, -1392, -1358, -1336, -1299, -1264, -1195, -1176, -1146, -1146, -1177, -1148, -1415, -691, 132, -1466, -928, 133, 1626, 1576, 1472, 1254, 1326, 1265, 1157, 103, -1009, 1363, 229, -1465, 901, -765, 1186, 578, 714, 590, 867, 957, 985, 1011, -1045, 1057, 1096, 1106, 1138, 1098, 1069, 1032, 993, 821, 1404, -525, -1562, -2610, -91, -1461, -2411, -2472, -2436, -2219, -2444, -2484, -2442, -1461, 65, --2458, -1820, -2495, 176, 322, 121, -11, 779, 1143, 1208, 1306, 1312, 1290, 1440, 1571, 1686, 1642, 1551, 1484, 1268, 1286, 1027, -1638, 149, -103, --200, -385, 247, 358, 304, -231, 429, 660, -41, 5, -697, -765, 173, -1852, -831, 238, -339, -594, 1021, 1595, 1769, 1851, 1993, 2021, 2302, -2392, 2552, 2371, 2143, 1983, 1494, 1676, 629, -430, -162, -83, -33, -448, 382, -262, 617, -386, 422, -325, -302, -461, -447, -1074, -894, -3037, --1972, -633, -1896, -2462, 228, 1675, 1994, 2112, 1824, 1567, 2110, 2692, 3141, 3002, 2760, 2586, 2113, 2020, 1083, -697, 421, -459, 114, 193, 440, -476, 509, 694, 567, 654, 68, -203, -883, -1079, -1109, -2515, 2231, 4435, 4142, 5112, 4747, 3869, 2539, 4359, 5842, 7635, 7289, 6643, 5825, 5117, -4082, 3001, 1757, 1828, 1006, -833, 484, 45, 306, 310, 521, 753, 687, 380, 248, -172, -866, -273, -928, -837, -1631, -1224, 2354, 5868, 4602, -2520, 2050, 1906, 705, 797, 1188, 1245, 3317, 4316, 4761, 4367, 4084, 3781, 3167, 2859, 1460, 173, -7, 25, 443, 578, 322, 650, 702, 473, -310, 126, 307, -404, 202, -264, 787, 3344, 3886, -2563, -3958, -3377, -452, 1071, 1395, -1739, -3718, -5446, -4785, -4082, -2930, -2882, -2639, -2310, -1336, --545, 500, 723, 702, 438, 270, 199, -165, 386, 594, -218, 692, 588, -72, -56, 793, 715, 1353, 72, -3892, -2261, 599, 3047, 2068, 343, --1321, -1978, -2874, -3311, -4562, -5223, -5204, -4247, -3308, -2833, -2139, -1679, -944, -149, -219, 208, 113, 185, 322, 449, 428, -210, 477, 575, 556, -468, 257, 42, 468, -3659, -1456, 2216, 1539, 1483, 2539, 2991, 2523, 2652, 2371, 2088, -236, -1407, -1706, -2803, -3110, -2970, -2344, -1496, -981, 25, --159, -427, -190, -270, -33, -103, 149, 71, 328, 175, -63, -434, -647, -879, -2256, -2360, -1096, 466, 127, 776, 602, 345, 302, -226, -434, --549, -433, -98, 435, 544, 409, -258, -808, -998, -1384, -1656, -1255, -1185, -793, -349, -109, -60, -57, 200, 262, 256, 101, -76, -262, -586, --602, -192, 256, 597, 441, 657, 350, 359, 459, 117, -105, -401, -443, -553, -622, -719, -784, -669, -666, -373, -728, -1208, -959, -835, -602, --652, -383, -389, 108, -124, 187, -61, 184, -86, -329, -777, -335, -1377, -67, 102, 176, 333, 480, 560, 620, 404, 223, 54, -87, -230, --390, -368, -393, -453, -541, -589, -583, -1010, -431, -551, -659, -654, -397, -235, -376, -587, -186, 77, -204, -108, -443, -402, 42, -841, 445, -182, 260, 282, 320, 375, 487, 412, 373, 316, 230, 149, 42, 27, -3, -14, -17, -64, 97, -920, -1557, -1869, -615, -1527, -1953, -1979, --1912, -1778, -1918, -1945, -1868, -1398, -395, -1910, -1573, 198, 817, 1428, 635, 796, 889, 872, 942, 983, 1109, 987, 938, 883, 870, 854, 820, -805, 771, 718, 726, 716, 499, 1429, 1540, 714, 1284, 1532, 819, 882, 900, 806, 1001, 999, 927, 1499, 1271, 642, 1505, 804, 1108, 937, -1156, 1145, 1313, 1426, 1672, 1428, 1280, 1065, 932, 765, 636, 600, 604, 538, 652, 500, 765, 1278, 735, 1030, 737, 794, 981, 824, 989, -1091, 978, 819, 758, 769, 821, 847, 666, 819, 1008, 1547, 1906, 1829, 2114, 2174, 2656, 2339, 2239, 1952, 1769, 1594, 1309, 1111, 932, 590, -712, 305, 728, 1091, 556, 608, 376, 535, 640, 607, 341, 681, 522, 768, 406, 481, 425, 543, 724, 378, 1385, 1843, 2040, 1974, 2299, -2630, 3195, 2795, 2650, 2065, 1462, 775, 270, 116, 50, -205, 11, -226, 343, 838, -1, 360, -92, -12, 236, 314, 434, 190, 597, 429, -94, -10, -4, -1, 282, 3099, 3856, 3639, 5247, 5555, 5011, 4783, 4665, 4779, 4631, 4175, 5747, 6226, 6179, 4749, 3805, 3042, 2390, 1136, 1046, -1106, 120, 419, 252, 440, 523, 580, 520, 234, 342, 447, 659, 1161, 1551, 1884, 2161, 2923, 2033, -2673, -3316, -3293, -391, 1422, 2681, 377, --1793, -3412, -4199, -4505, -3857, -3523, -3076, -3242, -1939, -1538, 319, 1695, 1026, 991, 332, 340, 536, 550, 641, 405, 354, 310, 133, 400, 569, -1077, 1121, 967, -2449, -1984, 624, 2057, -807, -3286, -4130, -3766, -3727, -2563, -2727, -2714, -2576, -3520, -3284, -2556, -1488, -1555, -886, -95, 54, 839, -546, 528, 474, 594, 657, -123, 842, 898, 401, 1136, 718, 1518, 955, -1631, 973, 3817, 3296, 2386, 1125, 1554, 1402, 2837, 3830, 4510, 3120, -2082, 1377, 524, -302, -1065, -1313, -1350, -919, -305, -265, -481, -427, -277, 157, 48, 299, -37, 443, 385, 62, 147, 215, 139, -973, 1683, -2313, 1871, 1729, 897, -431, -840, -48, 150, 497, 818, 2305, 2526, 1392, 1388, 1067, 515, 80, -323, -769, -990, -1034, -661, -367, -31, 159, --7, -86, 144, 363, 715, 1136, 673, 345, 274, 1531, 335, 1718, 1224, 998, -131, -196, -292, -394, -517, -328, 254, 485, 815, 1025, 677, -198, -370, -650, -420, -264, -615, 22, 469, 127, -125, -57, 30, 110, 23, 57, 84, 193, -17, 49, 113, 229, 639, 7, -138, 262, -395, 506, 400, 260, 215, 75, 10, -107, -180, -192, -384, -543, -772, -518, -411, -198, -138, -258, -223, -173, -200, 58, -47, 23, 285, -58, 250, 181, 286, 410, 559, 460, 335, 38, -113, -120, -209, -297, -323, -317, -277, -235, -258, -298, -360, -424, -417, -376, -365, -387, --442, -468, -545, -362, -79, -29, 46, 228, 148, 301, 348, 209, 22, 186, 96, 180, 254, -43, 721, -209, -121, -131, -157, -143, -156, --189, -191, -193, -166, -125, -76, -33, -37, -52, -56, -59, -59, -92, 508, 657, -4, 536, 800, 183, 255, 274, 261, 415, 471, 491, -872, 568, 257, 885, -60, 408, -36, 480, 442, 459, 637, 527, 514, 553, 412, 335, 289, 222, 194, 163, 210, 230, 238, 268, 315, -309, -73, 99, 975, -79, 58, 920, 824, 801, 816, 767, 755, 701, 28, -72, 887, 72, 368, 468, 825, 897, 1260, 889, 823, 938, -676, 509, 387, 151, 19, -76, 1, 10, -15, 33, 173, -22, 335, 254, 88, 263, 280, 255, 274, 140, 63, 240, 341, 264, 333, -379, 237, 308, 352, 771, 1089, 1160, 1960, 1242, 1167, 1428, 820, 441, 183, -311, -522, -699, -517, -436, -418, -199, -8, -156, -7, 127, -96, 64, 93, 366, 251, 358, 45, 498, 349, 138, 197, 140, 206, 358, 729, 1168, 1868, 2375, 3441, 2131, 1924, 2421, 1741, 1300, 1039, -141, -388, -776, -655, -692, -850, -625, -321, -430, 17, 197, 82, -27, 75, 432, 315, 402, 338, 512, 484, 202, 423, 451, 654, 573, -1179, -88, -632, -1322, -1635, -2044, -2166, -2613, -2640, -2725, -2826, -2779, -2892, -3068, -2797, -2274, -1391, -960, -524, -223, 229, 262, 95, 127, 212, -398, 422, 392, 252, 201, 352, 519, 121, 191, 446, 824, -41, -2131, -3314, -2771, -2336, -3306, -3911, -3975, -2513, -2258, -2211, -3594, -4372, -5061, --4917, -4501, -3523, -2844, -1857, -1279, -408, 152, -4, 65, 115, 346, 429, 570, 356, 570, 566, 509, 527, 194, 255, -272, -2003, -1075, 266, --731, -1307, -1677, -1246, -1350, 1348, 2788, 2844, 1959, 910, -605, -644, -973, -1097, -1611, -1341, -1181, -969, -405, -174, -58, 216, 612, 698, 701, --72, 686, 527, -25, 160, -203, -445, -971, 950, -270, -5158, -6005, -4116, -3697, -3268, -2760, -3472, -3815, -3749, -2047, -1222, -1536, -737, -409, -117, --72, -143, -761, -1016, -841, -933, -617, -271, -33, 139, 55, -207, 263, 421, 441, 303, -107, 232, 495, -135, -2983, -3920, -3016, -2128, -2190, --2186, -2628, -2764, -2981, -3346, -2953, -2288, -1433, -1013, -796, -554, -823, -712, -609, -798, -356, -238, -23, 94, 118, -103, -161, -236, 41, 28, --106, -33, 100, 274, -606, 440, -1598, -1262, -803, -601, -691, -454, -201, -191, -218, -351, -537, -1228, -1993, -2461, -2115, -1022, -197, 159, -55, -30, -29, -429, -266, -120, -19, 88, 149, 89, 27, 23, 50, -7, -257, -303, -686, -578, -4, -33, -478, -709, -819, -957, -1137, -1041, --944, -902, -799, -626, -492, -252, -188, -241, -263, 38, -3, -284, 100, 273, 277, 231, 379, 178, 72, -263, 14, -53, 28, -29, -121, --136, -207, -290, -791, -735, -849, -872, -938, -978, -1072, -949, -865, -735, -637, -574, -535, -465, -353, -159, -57, 98, 99, -266, -251, -491, --257, -426, -621, -589, -651, -643, -601, -461, -463, -507, -455, -654, -617, -1017, -633, -607, -669, -685, -737, -775, -832, -771, -741, -721, -697, --658, -614, -562, -529, -505, -472, -441, -276, -721, -566, 254, -920, -725, 262, 217, 192, 216, 116, 89, 75, -727, -1017, 330, -705, -736, -461, 1209, 574, 659, 697, 693, 473, 349, 236, 246, 251, 277, 290, 301, 335, 305, 309, 317, 361, 354, 259, 997, 853, 189, 971, -913, 297, 327, 313, 258, 408, 439, 396, 935, 1049, 224, 969, 886, 1176, 1068, 1189, 1170, 755, 498, 226, 116, 86, 214, 292, 368, -429, 321, 320, 337, 455, 339, 449, 509, 444, 625, 470, 548, 701, 620, 785, 792, 739, 524, 481, 673, 715, 768, 854, 1465, 1547, -1551, 1674, 1738, 808, 255, -427, -611, -659, -482, -338, -270, -58, -178, -132, -45, 143, 137, 143, 432, 414, 280, 371, 505, 602, 553, -421, 611, 412, 611, 339, 623, 790, 891, 1217, 1365, 1788, 1781, 2177, 2442, 1480, 661, -401, -840, -1083, -652, -155, 231, 412, 92, 105, -254, 549, 278, 71, 181, -121, 126, -52, 3, 226, 316, 336, 124, 440, 329, -88, 543, 909, 665, 982, 1587, 43, -675, -738, -162, -95, 172, -72, -334, -525, -793, -2584, -3303, -3352, -2295, -2076, -2740, -1994, -1377, -250, 262, -113, 142, 76, 257, 502, 331, 368, 375, 627, -518, 292, 194, 353, 520, 1730, -1549, -844, 1338, 2219, 3277, 4393, 4621, 3046, 3446, 3070, 1746, 1791, 1227, 61, -548, -417, 702, 206, -185, --402, -769, -369, -184, -121, 61, 352, 430, 599, 469, 792, 835, 906, 538, 284, -209, -524, -49, 1138, 820, 1381, 3039, 5352, 5513, 3066, -1508, 727, 559, 2126, 2899, 3007, 3015, 2412, 1563, 875, 760, 180, -25, -130, -147, 77, 231, 711, 579, 523, 55, 508, 311, 139, -181, --189, -470, 14, -493, -83, 2883, 4538, 6151, 5476, 3901, 1190, 1536, 1221, 1359, 760, 732, 1219, 985, 976, 1024, 800, 673, 213, -508, 73, -200, 246, 364, 436, 296, 183, -131, 240, 343, 694, 254, 356, -150, 184, -869, 2207, 4005, 3734, 4761, 4485, 3992, 2633, 2653, 2736, 3548, -1774, 904, 995, 277, -57, 52, 429, 873, 978, 327, 696, -10, 93, 276, 488, 308, 281, -83, 246, 266, 286, 161, 88, -274, 504, --1178, 858, 1617, 1575, 2111, 1735, 1132, 362, -312, -861, -1105, -885, -372, 105, 695, 996, 1065, 998, 928, 407, 177, 522, 393, 566, 351, -241, 191, 157, 352, 324, 376, 342, 313, 456, 153, 487, 991, 973, 1008, 1076, 1245, 904, 725, 590, 628, 628, 471, 385, 176, -149, -20, 184, 411, 552, 770, 928, 632, 373, 226, 322, 292, 355, 226, 548, 251, 445, 233, 446, 344, 350, 158, 604, -728, 1002, 915, -879, 843, 830, 815, 762, 585, 411, 296, 186, 135, 52, 149, 171, 178, 229, 190, 360, -11, 506, 596, 275, 289, 567, 666, 731, -541, 823, 858, 578, 685, 324, 399, 799, 517, 1184, 831, 900, 869, 875, 873, 901, 833, 785, 722, 643, 555, 440, 474, 498, 524, -559, 553, 676, 370, -213, -1305, 665, -109, -1375, -1357, -1317, -1225, -1264, -1249, -1168, -78, 894, -1434, -248, 977, -1615, -931, -1937, -1482, -1709, --1729, -1813, -1801, -1740, -1628, -1568, -1529, -1520, -1521, -1552, -1546, -1540, -1501, -1527, -1397, -1708, -987, -99, 1571, -1245, -143, 1472, 1443, 1410, 1241, -1320, 1311, 1216, -124, -1444, 1585, 125, 1029, -2139, -2321, -2533, -2613, -2772, -2755, -2566, -2231, -1983, -1869, -1773, -1778, -1843, -1806, -1753, -1648, -1650, --1567, -1581, 183, -930, -946, -600, -414, -840, -904, -1017, -696, -1048, -1102, -784, -946, -491, -461, -1291, -184, -1540, -2948, -2864, -3209, -3558, -3555, --3294, -2644, -2276, -2109, -1972, -1954, -2077, -1985, -1892, -1682, -1629, -1633, -1095, -760, -626, -546, -488, -55, -297, 123, -536, -68, -306, -1, -380, --174, -191, -49, -783, 230, -2420, -4640, -4797, -5149, -5590, -5673, -5213, -3958, -3036, -2709, -2395, -2461, -2582, -2284, -1999, -1696, -1734, -1519, -1141, -392, --675, -232, -329, -121, 98, 165, 351, -20, 294, 78, -222, -307, -199, -328, -715, -1156, -1333, -475, -51, 519, 850, 729, 462, -1114, -2250, --3084, -2968, -2706, -2470, -2954, -2833, -2053, -1582, -1521, -1912, -936, -843, -500, -325, -51, 423, 118, 186, 356, 274, 98, 29, 167, 257, -7, --623, -83, 1030, 1003, 571, 1305, 269, 73, 579, -537, -603, 148, 88, -56, -156, -225, -504, -993, -1463, -1698, -1287, -1051, -1044, -681, -455, --159, 392, 280, 321, 236, 603, 665, 240, 69, -322, -396, -171, 783, -32, 202, -532, -3438, -3913, -4528, -4019, -2922, -2322, -1494, -1992, -2047, --1503, -1328, -772, -150, 496, 433, 109, 128, -32, -133, -219, -32, 626, 185, 91, -41, 315, 250, 352, 118, 207, 457, 489, 451, 1464, --193, -2200, -5551, -2803, -943, 759, -175, -335, -101, -701, -671, 55, -519, -775, -838, -862, -504, 188, 496, 423, 740, 363, 322, 770, 92, --20, -163, 43, 152, 342, 123, -115, 288, -56, 1736, -208, -3781, -3778, -3481, -2542, -2279, -1687, -2351, -2547, -2779, -1618, -1219, -1679, -623, 19, -490, 755, 412, 362, 443, 5, 345, 228, 273, 332, 462, 385, 85, 62, 134, 297, 448, 451, 633, 374, 1077, -820, -1765, -1070, -935, --677, -695, -953, -642, -546, -602, -818, -892, -1029, -517, -371, -170, -179, -191, 385, 684, 345, 549, 236, 154, 89, -56, -16, 104, 124, -113, 14, 282, 128, 92, -386, -115, -656, -900, -657, -767, -670, -641, -602, -606, -657, -569, -381, -179, 28, 77, 199, 368, 248, -74, --61, 304, 143, 1, 16, 200, 102, 379, 149, 594, 133, 281, -66, -60, -32, 151, -208, 1451, 127, 8, -36, -139, -212, -292, -351, --191, -26, 58, 147, 221, 340, 277, 221, 157, 147, 194, 103, 415, 55, 123, 291, 297, 185, 106, 125, 354, 112, 10, 343, 248, -578, 594, 172, 424, -380, -135, -215, -227, -248, -269, -331, -255, -211, -140, -70, -7, 71, 36, 29, 14, -15, -18, -166, 316, 828, -1270, 218, 889, 1406, 1433, 1431, 1343, 1464, 1492, 1454, 939, 141, 1467, 1056, -225, 392, -905, 632, 124, 235, 249, 499, 574, 504, 542, -522, 465, 449, 430, 421, 447, 463, 494, 455, 336, 820, -716, -1569, -2400, -295, -1428, -2237, -2298, -2286, -2103, -2303, -2325, -2266, -1474, -236, --2331, -1773, -2285, -277, -134, -89, 103, 777, 989, 760, 939, 824, 588, 482, 467, 516, 636, 658, 711, 512, 561, 445, -1613, -173, -336, --328, -456, 9, 81, 25, -384, 113, 269, -258, -265, -869, -967, -229, -1609, -851, -233, -526, -268, 987, 1422, 1050, 1440, 1257, 925, 734, -647, 667, 806, 862, 1018, 604, 799, 147, -629, -391, -240, 9, -301, 315, -323, 424, -396, 238, -417, -288, -558, -715, -1247, -985, -2676, --2004, -766, -979, -542, 1469, 2239, 1822, 2408, 1983, 1121, 617, 572, 812, 1138, 1211, 1313, 784, 765, 258, -847, 26, -532, 89, 218, 458, -327, 219, 451, 366, 312, -168, -528, -1155, -1396, -1274, 358, 4040, 5272, 3679, 531, -95, -1153, -2333, -1436, -867, 73, 778, 963, 526, 956, -1026, 1185, 732, 1016, 298, -926, 139, -100, 106, 65, 334, 186, 205, 341, 24, 138, 458, 637, 200, 528, 43, 1034, 1600, 870, 294, --784, -1018, -1530, -1496, -1713, -1288, 472, 418, 867, 1431, 1920, 2022, 1945, 1590, 1601, 199, -603, -388, -318, 223, 353, 588, 329, 271, 244, -644, 561, 387, 152, 867, 998, 1446, 361, 1112, 117, -471, 335, 1193, 2477, 3610, 2176, 1504, 1389, 917, 845, 712, 481, 1, -561, -213, -316, 432, 471, 563, 263, 183, 277, 882, 59, -34, 75, 422, 510, 734, 244, 469, 377, 548, 482, -682, -794, -169, 1693, 1065, 357, -273, -741, -1544, -2157, -1724, -1384, -1445, -348, 256, 420, 557, 542, 301, 93, 207, 337, 270, 409, 847, 234, -9, 63, 32, 258, 875, -315, 360, 227, 682, -1387, -631, 1167, 668, 253, 1072, 1353, 869, 107, -539, -964, -1131, -874, -409, -515, -539, -435, -458, -116, 84, 202, -409, 295, 307, 246, 322, 344, 429, 259, 280, 77, -24, -32, -14, -238, -509, -1375, -869, -129, -475, 65, 41, 549, 1392, 825, 363, --175, 42, 152, 389, 440, 434, 344, 178, 70, -149, 0, 40, -161, 126, 272, 197, 269, 245, 384, 377, 338, 313, 294, 279, 40, -56, -540, -95, 413, 241, 396, 429, 543, 669, 633, 762, 807, 565, 313, 97, 163, 212, 337, 299, 419, 214, -27, 102, 189, 209, -84, 316, 109, 352, 34, 189, -87, -60, -176, -370, -588, -376, -347, 74, 227, 302, 442, 568, 669, 750, 679, 570, 530, 497, 498, -451, 476, 466, 464, 430, 414, 451, 170, 415, 344, 358, 302, 383, 404, 287, 66, 253, 368, 156, 210, 50, 20, 217, -232, 342, -275, 320, 349, 365, 395, 459, 442, 452, 437, 432, 422, 414, 394, 374, 358, 363, 336, 433, -38, -324, -334, 2, -393, -423, -472, --459, -375, -488, -509, -494, -498, -108, -353, -535, 270, -130, 738, -210, -67, -54, -86, -191, -248, -291, -275, -254, -201, -188, -166, -155, --133, -123, -115, -129, -112, -323, 724, 988, 526, 584, 1024, 631, 682, 687, 588, 774, 773, 714, 926, 527, 381, 959, 280, 408, 324, -471, 367, 45, -181, -353, -431, -432, -316, -348, -344, -338, -309, -240, -172, -124, -243, 38, 703, 111, 380, 269, 369, 388, 202, 330, -581, 252, 51, 173, 171, 351, 283, -20, 341, 432, 694, 702, 498, -268, -647, -921, -904, -750, -401, -286, -188, -173, -108, -60, -67, --76, -340, 160, 459, 168, 253, 239, 479, 406, 402, -26, 561, 86, 430, 153, 192, 79, 228, 383, -42, 1384, 2029, 2206, 1904, 673, --108, -832, -1128, -1174, -764, -721, -692, -729, -690, -518, -293, -280, -433, -14, 146, -322, 87, -52, 40, 292, 203, 212, 81, 318, 31, --193, -79, -33, -94, -138, 3990, 1434, -899, -755, -1949, -2274, -2083, -1269, -52, 1050, 1934, 2150, 2425, 2810, 2388, 1896, 1204, 666, -36, 321, -547, -73, 72, 139, 247, 371, 93, 136, 317, 435, 719, 1045, 742, 1157, 1557, 3002, 1125, 139, -422, 321, -23, 2936, 3795, 3444, 2333, -1099, -437, -587, -774, -1166, -1084, -1273, -1780, -653, -354, 466, 1034, 644, 548, 206, 177, 578, 382, 355, 172, 518, 554, 464, 916, 885, -1045, 300, 973, 26, -383, 857, 1329, 1367, 865, 631, -617, -1150, -1439, -1455, -1569, -1815, -1474, -895, -186, -37, -358, -58, 106, 24, 433, -236, 372, 1189, -17, -248, 112, 293, 541, 1200, 744, 163, 1028, 717, 116, 641, 2188, 2579, 601, 841, 722, 28, 1065, 1333, 976, 1090, -1155, 1209, 789, 369, -18, -235, -346, 136, 597, 346, 98, 286, 369, 827, 259, 239, 376, 38, 105, 433, 328, 265, 212, -127, 1114, -1669, 1676, 1498, 369, 403, 129, -123, 371, 639, 931, 973, 954, 1236, 941, 717, 182, 239, 219, 178, 321, 141, 147, 196, 149, 172, -200, 107, 371, 259, 416, 637, 427, 405, 383, 1037, 841, 1431, 426, 43, -309, -290, -538, -1004, -327, 81, 468, 349, 572, 1000, 1008, -791, 80, -198, -217, 161, 120, 253, 512, 346, 232, 288, 314, 362, 101, 335, 422, 475, 372, 480, 589, 857, 448, 57, -29, 299, -391, 278, 165, -44, 128, 191, 320, 356, 376, 364, 172, 63, -56, 65, -113, 53, 409, 293, 320, 292, 390, 292, 362, 123, 420, -132, 264, 167, 266, 391, 482, 376, 417, 367, 191, 88, -34, -143, -235, -316, -296, -278, -259, -232, -199, -137, -141, -134, -175, -194, --255, -238, 443, 164, 375, 321, 502, 479, 426, 553, 692, 533, 471, 532, 508, 467, 476, 341, 578, 124, 123, 104, 65, 54, 31, --15, -9, -15, -17, -16, -13, -2, -13, -17, -12, -13, 18, -144, 454, 614, 438, 449, 689, 489, 512, 468, 368, 447, 422, 403, -678, 546, 235, 647, 168, -287, -860, -277, -362, -428, -431, -404, -366, -326, -278, -258, -235, -270, -282, -325, -262, -242, -214, -228, -211, --114, -832, -755, 83, -775, -770, 57, -54, -69, -5, -144, -184, -195, -779, -780, 77, -756, -141, -561, -671, -931, -997, -1042, -932, -744, --508, -335, -239, -295, -362, -484, -340, -282, -200, -267, -128, -337, -417, -241, -482, -232, -249, -287, -279, -475, -549, -447, -248, -283, -256, --243, -257, -268, -198, -455, -1147, -1263, -1395, -1432, -1204, -887, -487, -268, -182, -305, -414, -675, -346, -241, -77, -110, 62, -177, -375, -187, --152, -82, -111, 119, -86, 35, -277, 26, -183, -119, -96, -127, 5, -218, 738, -398, -2016, -2380, -2742, -2999, -2676, -2085, -1137, -348, 9, --159, -467, -916, -434, -227, -25, -156, 111, -16, -219, 292, -20, 196, 274, 596, 270, 187, 213, 137, 136, 186, 299, 468, 693, 435, --1184, -2147, -2147, -1776, 292, 241, 724, 1642, 656, 347, 312, 126, -125, -479, -1075, -921, 188, 212, 541, 81, -194, 311, -182, 121, 118, -319, 100, 169, 460, 527, 486, 88, -298, -296, -390, -553, -66, -272, 520, 461, 452, 82, -286, -426, -770, -1231, -2390, -2700, -2734, -2551, --1890, -1511, -1151, -1043, -484, -355, -17, 237, 69, 273, 255, 545, 332, 259, 47, 484, 496, 406, 629, 319, -22, 79, -653, -869, -364, --1497, -3686, -3631, -2970, -1560, 152, 773, 454, 123, -460, -1042, -1259, -1314, -1080, -875, -447, -392, -423, -171, -208, -64, 231, 1061, 107, -159, -14, 78, 269, 862, 28, -334, -292, -581, -16, -445, -2493, -3752, -4909, -3726, -2970, -1891, -2812, -2662, -1957, -947, -291, 89, 209, 128, -96, -186, 347, -18, -95, -109, -120, -84, 39, 618, 235, 55, 342, 34, 72, 344, 153, -133, 55, -147, -109, -1994, -3149, -3039, -3492, -2824, --2288, -1447, -1498, -1656, -2240, -1698, -1244, -1014, -422, 0, 264, -26, -217, -253, -291, -161, 178, 142, 115, 94, 79, 75, -44, -16, -27, --30, -79, -60, 141, -648, 393, -889, -1242, -1111, -1060, -290, -117, -404, -257, 38, 396, 117, -356, -931, -880, -669, -393, -102, 47, 108, -30, -98, -227, -149, 60, 156, 124, 134, 153, 236, 204, 44, 94, -108, 10, -498, -663, -619, -523, -530, -547, -571, -569, -530, -682, --915, -1094, -717, -258, 185, 127, 13, -143, -266, -286, -415, -306, -35, 147, 171, 186, 140, 142, 29, -107, -33, -50, -65, -121, -216, --208, -396, 318, -109, -94, -218, -266, -313, -349, -384, -296, -147, -86, -61, -138, -148, -198, -174, -115, -83, 25, -68, -239, -178, -313, --170, -195, -213, -161, -237, -169, -119, -54, 89, -5, 101, 30, -11, -389, -73, -64, -102, -105, -130, -152, -193, -175, -188, -175, -171, --143, -127, -79, -52, -38, -38, -28, 60, -385, -331, 196, -366, -335, 261, 254, 281, 305, 273, 282, 273, -259, -389, 352, -226, -27, -654, 677, 557, 538, 655, 701, 837, 845, 755, 743, 701, 623, 617, 598, 604, 590, 590, 580, 612, 560, 618, 776, 344, -810, 884, -424, -665, -646, -643, -618, -576, -548, -494, 431, 893, -701, 283, -107, 359, 344, 583, 751, 1299, 1463, 1232, 1174, 987, 784, 787, 790, -804, 762, 741, 688, 756, 629, 733, 100, 463, 580, 407, 401, 669, 596, 712, 594, 669, 577, 480, 507, 279, 380, 526, 16, -170, -60, 445, 754, 1941, 2144, 1604, 1575, 1189, 736, 636, 539, 621, 567, 585, 546, 650, 604, 497, 573, 438, 277, 478, 458, 566, 322, -423, 356, 282, 271, 390, 315, 314, 160, 127, -620, -1433, -1051, -480, 284, 2689, 3353, 2643, 2451, 1798, 1007, 994, 1053, 1104, 973, 900, -797, 1008, 621, 524, 410, 188, 177, 262, 317, 459, 306, 120, 109, 216, 216, 178, 194, 182, -131, -128, -412, 1342, 2084, 1740, 1443, -706, 314, 536, -48, -520, -896, -1251, -1416, -1612, -360, -164, -1011, -438, 42, 1088, 732, 346, 379, 344, 333, 407, 227, 261, 445, 470, -284, 2, -10, -197, -164, -460, 537, 926, 2002, 2028, 1310, 940, 793, 565, 279, 408, 903, 1006, 1125, 1377, 1099, 1398, 2142, 1599, 1073, -716, 254, 318, 252, 307, 361, 613, 241, 195, 244, 543, 529, 563, 589, 864, 715, 1055, -117, 1057, 1617, 1084, 1681, 2150, 2480, 2611, -1323, 1102, 1335, 2106, 2607, 2657, 2095, 1180, -64, 69, 205, 71, 210, 128, 343, 349, 379, 969, 268, -2, 54, 84, 262, 837, -81, --33, -505, 6, -34, 199, 1824, 2963, 5053, 2676, 1221, 364, 512, 718, 1124, 1177, 1233, 1095, 1333, 1431, 1235, 1517, 1241, 565, 118, 216, -204, 284, 381, 636, 155, 45, 382, 173, 197, 579, 161, 454, -3, 398, -566, 1444, 3170, 2779, 2622, 2029, 2017, 2112, 2113, 2038, 2221, -1308, 864, 791, 465, 241, 158, 326, 391, 422, 217, 409, 119, 206, 283, 328, 320, 272, 131, 209, 256, 359, 211, 121, -93, 470, --668, 849, 1444, 965, 652, 646, 714, 1087, 207, -223, -320, 240, 547, 596, 453, 432, 473, 487, 526, 253, 66, 231, 281, 454, 324, -149, 184, 184, 210, 232, 225, 286, 163, 350, 349, 640, 347, 344, 415, 341, 395, 599, 788, 1088, 996, 962, 738, 446, 144, -92, --57, -76, -132, -59, 99, 214, 81, 55, 47, 121, 120, 276, 140, 282, 153, 277, 238, 389, 396, 354, 276, 359, -253, 473, 512, -651, 721, 801, 857, 928, 724, 556, 455, 375, 322, 218, 254, 268, 286, 324, 273, 369, 51, 395, 486, 340, 370, 547, 498, 545, -390, 440, 350, 214, 233, 116, 215, 362, 626, 667, 587, 655, 683, 719, 749, 821, 751, 712, 648, 578, 505, 418, 449, 462, 472, -487, 473, 546, 584, 281, -467, 719, 342, -435, -421, -410, -374, -370, -352, -348, 250, 689, -457, 221, 751, -875, -434, -1027, -759, -879, --897, -1059, -1084, -1005, -1006, -977, -932, -905, -884, -868, -866, -862, -864, -855, -754, -1025, -404, 291, 1409, -601, 248, 1348, 1328, 1302, 1180, -1244, 1244, 1206, 204, -729, 1281, 289, 312, -981, -781, -830, -881, -1332, -1535, -1377, -1450, -1343, -1205, -1091, -1027, -1012, -1028, -1021, -1031, -939, --886, -927, 485, -426, -429, -152, -24, -384, -436, -524, -270, -561, -591, -271, -424, -117, -256, -824, -721, -931, -901, -1088, -1261, -2064, -2358, --1970, -2124, -1958, -1664, -1470, -1297, -1230, -1200, -1170, -1176, -976, -985, -602, -250, -221, -240, -108, 192, -134, 228, -263, 92, -127, 132, -15, -1, -148, -197, -672, -1182, -1085, -682, -730, -752, -2016, -2822, -2520, -2872, -2572, -2090, -1706, -1546, -1507, -1538, -1442, -1399, -1109, -926, -718, 23, --309, -35, 15, 210, 277, 195, 209, 59, 190, 68, 38, -79, -325, -447, -1148, -105, -835, -979, -1307, -2490, -3113, -3110, -1995, -2184, -2356, --2697, -2197, -1544, -722, -811, -937, -1227, -861, -1041, -897, -46, -389, -62, -24, 97, 365, 199, 184, 234, 151, 136, 135, -72, -165, -251, --473, 1057, 1232, 1389, 892, 282, -955, -1075, 213, -186, 103, 412, 304, -31, -425, -603, -911, -1576, -1419, -1515, -566, 22, -184, -126, -95, -11, 397, 143, 92, 148, 253, 286, 379, 412, 320, 683, 591, 932, -37, -144, -7, -1359, -2073, -2903, -2324, -1727, -1479, -2026, -2532, -2724, --2522, -1715, -990, -490, -186, -266, -356, -175, -75, 159, -25, 126, 729, 225, -29, 92, 3, 212, 801, 479, 388, 402, 352, 439, 376, --383, -1047, -2933, -2378, -1474, -90, 186, 483, 319, 114, -101, -158, -645, -818, -716, -704, -519, 42, 543, 293, 376, 455, 351, 436, 29, --59, 205, 42, 109, 156, 233, 112, 272, 47, 1018, -346, -2288, -2106, -1664, -2001, -2038, -1505, -1357, -1088, -1001, -537, -529, -737, -220, -49, --244, 268, 68, -155, 136, -213, 2, 110, 136, 138, 245, 112, 72, 51, 217, 389, 335, 285, 405, 28, 1290, -42, -581, -418, -995, --1113, -1167, -1057, -531, -164, 35, -82, -153, -201, -527, -646, -467, -346, -279, 167, 289, 47, 206, 70, 78, 42, -11, 55, -24, -83, --77, 128, 79, 23, 187, 98, 49, -94, -462, -603, -878, -730, -684, -645, -583, -519, -372, -327, -289, -214, -225, -188, -149, -154, -266, --240, -54, 9, -19, -37, 160, 45, 267, -99, 247, 116, 401, 316, 352, 399, 516, 176, 558, -420, -409, -385, -398, -444, -491, -528, --463, -407, -371, -298, -216, -137, -122, -115, -128, -138, -119, -175, 344, -179, -220, -88, -86, -342, -401, -384, -166, -420, -479, -293, -332, --100, -131, -381, -1, -535, -329, -380, -375, -381, -382, -405, -360, -327, -290, -262, -240, -201, -240, -260, -269, -287, -266, -417, -12, 448, -1155, -200, 412, 1203, 1194, 1140, 1022, 1069, 1044, 982, 414, -248, 1088, 514, -375, 470, -295, 727, 332, 385, 326, 432, 467, 441, 498, -496, 449, 471, 476, 487, 487, 496, 516, 510, 426, 742, -266, -878, -1456, 23, -792, -1361, -1391, -1386, -1257, -1394, -1408, -1349, -793, 126, --1415, -987, -1159, 504, 411, 305, 175, 285, 318, 291, 561, 621, 480, 495, 511, 592, 635, 654, 695, 608, 644, 519, -917, 93, -22, --2, -99, 144, 231, 197, -94, 220, 353, 89, 187, -179, -224, 280, -423, 293, 476, 135, -8, 194, 349, 234, 688, 771, 536, 644, -642, 729, 714, 742, 903, 699, 865, 306, -223, -18, 39, 254, -10, 252, -68, 440, -111, 228, -148, 106, -11, -80, -295, -94, -572, -498, 754, 349, -191, -253, -265, -265, 691, 1039, 658, 667, 714, 986, 1038, 1076, 1212, 928, 941, 469, -315, 314, -151, 437, 481, 468, -343, 172, 403, 189, 250, 285, 313, 71, 88, 125, -369, 791, 1249, 453, -118, 119, 446, 617, 148, -29, -130, 20, -80, -310, -180, -110, 526, 645, 974, 290, -472, 257, 96, 237, 187, 288, 344, 304, 209, 293, 315, 112, -24, -326, -307, -327, 1407, 1358, 872, 894, -1669, -417, -1660, -1355, -1058, -880, -1330, -1013, -495, 127, 863, 1151, 1144, 788, 661, -284, -676, -351, -256, 212, 285, 348, 227, 116, 85, -251, 278, 692, 251, 611, 1022, 1438, -644, -497, -242, 174, 1192, 1555, 2601, 3045, 2733, 1774, 747, 448, 179, 98, -210, -512, -631, -694, --195, 201, 222, 341, -86, 311, 410, 468, 275, 107, 229, 31, 233, 749, 584, 438, -166, -461, -267, -574, -176, 60, 1168, 914, 644, -561, 383, 493, 708, 606, 299, -36, 264, 461, 451, 363, 273, 28, -177, 62, 211, 346, 297, 270, 199, 64, 240, 129, 202, 326, -234, 353, 154, 130, -922, -334, 721, 548, 742, 748, 854, 935, 460, 373, 547, 490, 567, 456, 140, -50, -116, -179, -65, -192, -202, --36, -64, 10, 96, 262, 170, 197, 46, 158, 139, 167, 26, -77, -262, -331, -811, -412, 174, 143, 467, 510, 779, 1316, 986, 750, -356, 380, 372, 442, 528, 535, 517, 475, 298, -172, -104, 9, -157, 35, 202, 293, 203, 128, 288, 152, 119, 123, 64, 43, -123, --109, 121, 455, 620, 420, 392, 477, 546, 627, 389, 288, 170, 181, 160, 121, 119, 104, 159, 211, 471, 352, 18, 111, 166, 137, --56, 3, -124, 226, -122, 225, 74, 270, 136, 55, -117, 116, -714, 79, 247, 354, 509, 644, 762, 910, 803, 688, 545, 360, 179, --9, 53, 92, 123, 113, 125, 177, -338, 71, -6, -63, -124, 61, 125, 1, -232, -20, 7, -191, -131, -275, -251, 32, -178, 497, -369, 433, 468, 491, 522, 588, 516, 484, 459, 443, 429, 379, 397, 389, 393, 408, 385, 536, -84, -479, -762, 49, -496, -853, -883, --834, -718, -808, -791, -754, -531, 15, -733, -589, 467, -359, 510, -532, -243, -256, -253, -331, -397, -503, -414, -404, -458, -404, -387, -360, --388, -388, -385, -379, -326, -574, 487, 863, 813, 313, 861, 809, 874, 875, 758, 911, 929, 915, 842, 231, 774, 925, 813, -87, -125, --47, -163, -333, -425, -666, -505, -539, -700, -586, -549, -475, -559, -551, -526, -429, -498, -237, 727, -20, 223, 173, 290, 116, 30, 116, -365, 17, -140, 161, 127, 385, 424, -52, 543, 120, 156, 414, 270, -265, -529, -1091, -609, -569, -894, -639, -567, -412, -571, -555, -567, --459, -644, -36, 355, 147, 190, 184, 435, 85, 386, -96, 477, -59, 337, 285, 325, 330, 514, 330, 848, 657, 895, 1112, 575, -97, --393, -1169, -634, -748, -1281, -941, -784, -561, -864, -877, -769, -600, -680, -94, 313, -256, 253, 123, 184, 165, 200, 189, 67, 123, 43, -292, 405, 580, 618, 514, 932, -303, -1574, -1194, -837, -1077, -979, -1269, -812, -509, -620, -410, -229, 277, 508, 505, -55, -86, -451, 47, -398, -181, 207, 247, 309, 239, 307, 306, 189, 479, 424, 102, 122, 377, 309, 612, 837, 182, -9, 529, 1005, 231, -107, -580, -181, --272, -599, -263, -114, -67, -593, -849, -1031, -318, -350, -101, 156, 18, 66, 61, 130, 258, 189, 94, 57, 138, 319, 680, 469, 316, -705, 400, -286, 72, 197, 428, 1139, 758, 875, 377, -113, -250, -167, -388, -707, -991, -1201, -953, -505, -512, -776, -321, -86, -154, 40, -465, 437, 139, 101, -62, 113, -102, 123, 689, 675, 394, -16, -134, 249, 677, 872, 1025, 881, 449, 552, 732, 2009, 2600, 2462, 1960, -1564, 1373, 706, 295, -7, -160, -343, -169, 76, -35, -125, 334, 333, 105, 207, 261, 334, 293, 247, 26, 98, 196, 217, 197, 770, -1120, 1027, 985, 398, -109, -112, 365, 702, 977, 1232, 1321, 1276, 1285, 785, 551, 317, 117, -12, -90, 45, -69, -42, -21, 35, 159, -130, 43, 226, 94, 291, 534, 501, 419, 306, 638, 490, 682, 169, 87, -34, -290, -373, -253, 208, 323, 113, 135, 250, 452, 657, -547, 169, -9, -56, 90, 132, 227, 394, 229, 150, 318, 212, 165, -57, 38, 72, 58, 53, 129, 146, 371, 485, 112, -112, 60, -30, 169, 249, 256, 311, 347, 404, 288, 165, 30, -33, -53, -89, 91, 95, 351, 464, 286, 176, 128, 124, 39, 167, 173, 443, -220, 290, 190, 249, 353, 449, 332, 397, 178, 123, 183, 144, 145, 129, 158, 193, 224, 266, 288, 333, 370, 352, 332, 281, 259, -204, 185, 285, 200, 341, 336, 392, 377, 250, 294, 327, 139, 24, 30, 57, 121, 184, 56, 578, -14, 70, 63, 68, 74, 75, -63, 73, 80, 83, 103, 116, 135, 125, 127, 131, 125, 124, 41, 586, 764, 524, 506, 787, 597, 601, 563, 488, 555, 545, 516, -719, 469, 452, 744, 68, -371, -937, -283, -390, -466, -539, -523, -492, -465, -382, -351, -342, -353, -345, -328, -310, -303, -300, -308, -303, --182, -917, -903, -198, -822, -902, -257, -319, -325, -266, -406, -425, -395, -889, -810, -188, -916, -485, -581, -548, -777, -917, -944, -914, -849, --636, -488, -429, -413, -394, -371, -330, -328, -319, -375, -237, -414, -634, -363, -549, -337, -356, -435, -337, -500, -626, -489, -322, -322, -345, --388, -421, -392, -530, -489, -736, -1065, -1501, -1470, -1306, -1069, -742, -539, -459, -489, -429, -382, -238, -202, -185, -211, -47, -294, -585, -345, --241, -161, -244, -145, -151, 32, -333, -67, -281, -120, -166, -166, -178, -457, 122, -434, -1120, -1648, -2158, -2241, -2068, -1806, -1323, -827, -540, --533, -491, -476, -261, -223, -235, -295, 40, -75, -339, 200, -43, 248, 344, 400, 301, 210, 245, 49, 134, 288, 332, 320, 454, 106, --2155, -1766, -1557, -1206, -404, -834, -868, -696, -206, -44, 115, 303, 359, 309, -232, -119, 724, 395, 416, -196, -464, 89, -82, 188, 118, -45, 294, 323, 205, 327, 132, -374, -259, -423, -756, -1649, 153, 855, 987, -333, -1427, -1986, -1953, -2238, -982, -247, 24, -516, -971, -1054, --1162, -1208, -1243, -992, -473, -524, -376, -131, -105, 323, 364, 277, 135, -9, 23, 79, 204, 507, 154, 9, 22, 325, -130, -163, -412, --173, 502, -190, -541, -472, 418, 659, 266, -41, -406, -703, -572, -429, -311, -466, -356, -468, -567, -269, -415, 173, 222, -243, 44, -36, --14, -164, 34, 346, 415, 559, -96, -112, 224, -260, -1345, -1964, -2003, -1767, -1047, 215, -22, -187, -762, -441, -338, -318, -629, -678, -412, --355, -165, -256, -390, -233, -203, 235, 249, -53, 231, 151, 227, 330, 352, 83, 67, -49, 53, 159, -256, -1195, -1491, -1351, -1233, -1278, --1030, -577, -605, -716, -1313, -831, -619, -292, -155, 9, 121, -263, -321, -189, -223, -40, 76, 27, 15, 31, -35, -10, 12, -2, -2, --4, 201, 206, 99, -512, 129, -451, -342, -353, -346, -487, -448, -366, -88, 54, -6, -206, -427, -617, -593, -512, -390, -119, -26, -15, -23, -119, -248, -171, -16, 133, 124, 66, -24, 8, -7, -23, -36, -158, -176, -262, -436, -229, -210, -389, -415, -503, -561, -651, -549, --457, -294, -288, -262, -282, -112, 42, 170, 93, 57, -9, -36, 56, 75, 57, 63, 13, 110, 93, 109, 98, 15, -56, -79, -136, --150, -222, 29, -336, -263, -308, -316, -331, -326, -360, -207, -83, 46, 179, 317, 447, 379, 308, 289, 261, 290, 217, 231, 32, -134, --53, -147, -328, -288, -367, -322, -295, -173, -174, -145, -119, -219, -225, -494, -372, -336, -365, -361, -375, -384, -411, -357, -327, -297, -262, --232, -170, -190, -186, -198, -210, -215, -219, -377, -258, 361, -516, -366, 299, 268, 255, 248, 197, 172, 176, -310, -525, 339, -298, -462, -463, 491, 413, 344, 416, 411, 539, 559, 495, 508, 497, 483, 459, 455, 494, 460, 452, 433, 468, 414, 469, 567, 200, -818, 662, -265, -716, -659, -644, -638, -592, -574, -529, 271, 677, -729, 154, -215, 383, 304, 464, 496, 859, 921, 764, 803, 744, 683, 568, 561, -669, 609, 599, 542, 615, 506, 592, -39, 303, 455, 275, 251, 439, 429, 535, 417, 474, 403, 322, 350, 168, 258, 321, -34, -91, --118, 113, 208, 1166, 1258, 879, 885, 796, 759, 599, 541, 762, 598, 594, 491, 630, 557, 423, 389, 270, 240, 335, 280, 273, 215, -291, 229, 118, 122, 236, 183, 173, 110, 16, -510, -613, -490, -163, 199, 1709, 1970, 1460, 1435, 1222, 1013, 706, 752, 1054, 923, 830, -647, 890, 632, 530, 315, 154, 228, 301, 319, 251, 325, 191, 129, 130, 112, 167, 180, 139, -58, -211, -523, 678, 751, 636, 703, -588, 505, 285, 368, 332, 571, 63, -302, -703, -200, 72, -127, -37, 20, 613, 444, 144, 169, 302, 285, 9, 295, 338, 115, 320, -117, -123, 41, -93, -267, -561, 1134, 889, 91, -30, -199, 421, 372, -483, 326, 537, 252, 443, 610, 885, 802, 942, 1113, 890, 722, -474, 105, 264, 323, 396, 426, 387, 121, -41, 111, 60, 192, 454, 204, 303, 399, 871, -308, 283, 1052, 2091, 3893, 3785, 3255, 2159, -1044, 377, 337, 482, 852, 1394, 1079, 754, 305, 112, -55, 9, 51, -12, -103, 556, 417, -331, 62, 9, 2, -83, 95, 287, 641, -746, 325, -32, -127, 246, 1536, 2065, 2809, 1948, 1474, 835, 1339, 1218, 879, 712, 332, -117, -138, -65, 94, 156, 82, 78, -71, 71, -48, 385, 419, 78, 222, 214, 238, 375, 408, 212, 213, 312, -64, 71, 3, 1169, 2241, 2185, 2343, 2091, 1734, 979, 1246, 1258, 1198, -923, 797, 882, 579, 357, 204, 55, 74, 223, 223, 349, 116, 141, 170, 184, 41, 18, 111, 135, 174, 181, 288, 306, 51, 623, --279, 805, 1144, 916, 749, 436, 305, 258, 9, -166, -237, -35, 208, 467, 359, 283, 91, 207, 231, 3, -57, 44, 155, 226, 146, -90, 152, 133, 118, 189, 228, 235, 184, 262, 163, 367, 503, 535, 538, 535, 584, 464, 327, 166, 247, 335, 386, 214, 15, -185, --63, 54, 131, 96, 14, 91, 212, 96, 118, 99, 63, 80, 54, 180, 198, 182, 134, 182, 220, 276, 269, 425, -325, 322, 273, -267, 257, 245, 256, 247, 195, 108, 63, 27, 41, 30, 46, 28, 39, 64, 44, 116, 138, 203, 262, 105, 151, 229, 259, 314, -259, 334, 337, 275, 288, 141, 154, 267, 166, 270, 156, 192, 179, 185, 184, 193, 157, 140, 116, 98, 72, 46, 56, 65, 65, -77, 83, 90, 112, -86, -562, 211, -59, -639, -607, -584, -552, -528, -513, -474, -51, 284, -630, -129, 141, -563, -371, -661, -468, -510, --488, -629, -677, -629, -657, -631, -560, -577, -570, -561, -565, -571, -593, -570, -494, -685, -341, 151, 995, -466, 104, 910, 904, 890, 808, -832, 825, 804, 75, -558, 900, 130, 165, -554, -339, -411, -476, -848, -942, -774, -908, -869, -695, -722, -713, -701, -728, -728, -767, -649, --595, -670, 343, -291, -269, -99, -34, -323, -306, -387, -253, -421, -403, -186, -297, -82, -158, -577, -600, -620, -328, -331, -300, -1053, -1378, --1040, -1309, -1160, -822, -902, -847, -811, -837, -850, -979, -715, -727, -492, -189, -194, -102, -104, 64, -235, 109, -199, -33, -145, 4, -19, --66, -163, -136, -515, -768, -256, 322, 138, -101, -1295, -1618, -1080, -1583, -1545, -1015, -1133, -1140, -1101, -1186, -1144, -1240, -825, -653, -565, 60, --180, 112, 73, 176, 65, 220, 243, 55, 71, 21, 165, -12, -210, -130, -764, -372, -1077, -1750, -1541, -915, -1057, -1382, -1965, -1448, -1116, --889, -855, -703, -178, -452, -676, -843, -819, -1030, -953, -216, -402, -220, -14, 91, 13, 179, 216, 36, 152, 71, -99, -78, -76, -324, --507, 153, -253, -373, -452, -878, -1000, -947, -993, -714, -829, -784, -495, -461, -702, -994, -1061, -1036, -1009, -906, -208, 110, 59, 46, 77, -138, 235, 106, -52, 31, -115, 75, 331, 196, -174, -305, -240, 135, 390, 634, 360, -943, -1261, -1995, -2793, -1908, -1404, -1345, -1756, -1907, --1659, -1299, -797, -260, -163, -310, -451, -367, -205, -122, 312, 262, -325, 8, -39, 2, -94, -9, -49, 575, 756, 577, 203, 268, 270, --746, -1536, -2939, -2004, -1139, -471, 76, 67, -403, -773, -1100, -1137, -1316, -1332, -1141, -1113, -860, -354, 71, 35, 18, 328, 309, -13, 182, -136, 54, 241, 324, 80, 265, 67, 75, 38, 693, -468, -1777, -1534, -1345, -1376, -1578, -1874, -1131, -752, -734, -317, -170, -266, -30, 39, -120, 180, 81, -39, 73, -5, 84, 170, 169, 72, -7, -83, -51, -76, 0, 14, 212, 278, 327, 40, 709, -189, -502, -278, -527, --526, -682, -1165, -483, -154, 103, -186, -413, -525, -607, -576, -479, -459, -343, 9, 29, -80, 12, -20, 5, -29, -7, 36, 70, 60, -85, 128, 166, 44, 68, -151, 19, -103, -270, -251, -366, -446, -533, -653, -508, -443, -292, -172, -11, 159, 25, -89, -199, -227, -320, --384, -184, -47, 40, 30, 101, 71, 144, -29, 104, -6, 90, -16, 30, 77, 177, 8, 474, -169, -266, -358, -444, -541, -623, -720, --593, -475, -375, -270, -196, -112, -100, -53, -25, -27, 15, -47, 82, -142, -204, -118, -140, -264, -265, -247, -100, -181, -158, 19, -53, -85, 66, -107, -181, -389, -299, -352, -376, -400, -424, -482, -413, -378, -336, -295, -249, -190, -209, -223, -228, -238, -226, -261, -194, 41, -419, -283, 12, 454, 474, 466, 425, 457, 454, 435, 79, -272, 464, 127, -372, 500, -11, 664, 426, 487, 431, 526, 557, 564, 537, -527, 549, 522, 516, 495, 510, 510, 507, 508, 434, 645, -7, -491, -1050, 213, -427, -1007, -1003, -997, -913, -992, -993, -936, -424, 269, --1008, -568, -658, 568, 461, 415, 311, 526, 596, 614, 584, 618, 731, 678, 646, 584, 638, 640, 632, 584, 582, 467, -582, 200, 165, -111, 18, 192, 279, 286, 38, 288, 363, 178, 221, -64, -36, 349, -90, 467, 654, 479, 263, 764, 950, 1026, 846, 806, 968, 834, -822, 709, 760, 732, 746, 618, 693, 180, -100, 56, 159, 242, 12, 149, -30, 336, -89, 164, -80, 166, -20, -44, -130, 38, 60, -764, 620, 310, -82, 482, 834, 1006, 838, 931, 1351, 1145, 1055, 908, 1017, 1023, 962, 809, 729, 237, -186, 302, 48, 395, 335, 145, -298, 203, 211, 82, 161, 299, 184, 83, 190, 292, -602, 89, 311, 444, 755, 1353, 1196, 584, 532, 383, 481, 507, 487, 241, 91, -77, 295, 375, 668, 135, -458, 94, -38, 118, 146, 108, 236, 243, 118, 256, 153, -76, -69, -189, -313, -368, 1, 394, -5, -533, --1163, -897, -832, -1045, -1155, -1032, -241, -478, -455, -221, 2, 446, 1247, 750, 643, 118, -276, -63, 18, 334, 349, 153, 147, 31, 52, -6, 151, 437, 167, 167, -183, 222, 348, 881, 929, 1231, 1933, 2330, 2129, 1059, 1104, 752, 567, 941, 1126, 1128, 890, 460, 49, -165, -63, 126, 14, 167, 25, 465, 390, -169, 140, 109, 117, 53, 100, -140, 447, 811, 521, 497, -36, -255, 325, 832, 2072, 1938, 1463, -478, 277, -83, -338, -732, -937, -965, -465, -112, 83, 133, 130, -65, -259, 92, 117, 282, 244, -84, 217, 165, -3, 195, 337, 399, -322, 311, 22, 164, -593, 240, 1276, 1201, 1301, 1312, 1161, 635, 600, 717, 1246, 983, 853, 596, 241, 3, 148, 103, 281, 343, 117, -291, 130, 261, 295, 238, 94, 106, -13, 137, 67, -16, 110, 155, -12, 7, -559, 32, 605, 612, 834, 861, 884, 870, 518, 283, -247, 162, 34, -183, -55, 129, 347, 240, 137, -157, -170, -37, -122, 118, 196, 168, 184, 157, 311, 265, 286, 315, 254, 235, 79, -177, 111, 397, 552, 416, 454, 432, 465, 546, 502, 525, 528, 507, 490, 448, 392, 279, 212, 246, 478, 363, 30, 147, 190, 202, -80, 190, 22, 262, -47, 153, -30, 85, 36, -18, -140, 74, -408, 104, 160, 212, 282, 347, 406, 455, 383, 308, 239, 181, 130, -98, 121, 157, 181, 177, 144, 216, -113, 181, 153, 75, 28, 172, 233, 192, 28, 225, 271, 125, 139, -17, 1, 165, -47, 352, -258, 296, 306, 317, 329, 362, 333, 324, 311, 296, 278, 245, 252, 248, 249, 262, 244, 344, 19, -296, -650, 115, -300, -730, -731, --688, -592, -648, -627, -582, -302, 115, -585, -366, 337, -319, 319, -478, -225, -257, -222, -286, -330, -393, -393, -384, -354, -331, -329, -352, --357, -355, -344, -343, -292, -505, 318, 697, 863, 157, 672, 814, 866, 862, 750, 873, 889, 878, 644, 51, 800, 736, 701, -267, -240, --103, -29, -144, -275, -448, -497, -495, -412, -354, -357, -446, -485, -493, -469, -418, -457, -292, 623, -11, 162, 133, 204, 10, -50, 2, -202, -62, -166, 90, -12, 191, 198, -191, 333, -69, -229, 53, 207, -73, -352, -740, -816, -763, -550, -410, -396, -534, -592, -596, -557, --496, -614, -167, 220, 123, 182, 99, 292, -24, 255, -169, 256, -98, 214, 199, 135, 97, 227, 74, 421, -91, -103, 471, 836, 431, --69, -699, -874, -856, -556, -327, -341, -616, -781, -836, -769, -709, -748, -350, 171, -211, 283, 85, 33, -118, 110, 199, -39, 55, -8, -229, 71, 130, 97, -16, 327, -650, -1184, -1110, -1418, -851, -641, -855, -1001, -1044, -880, -825, -515, -278, -144, -166, -456, -398, -667, -254, -198, -253, 55, 27, 190, 257, 184, 163, 102, 227, 75, 4, -95, 66, 61, 260, 48, -476, -1315, -964, -453, 66, 216, 51, -496, --489, 126, 6, -68, -173, -471, -651, -828, -422, -432, 12, 193, 45, 155, 115, 97, -26, 43, 24, 46, -33, 131, 106, 293, 45, --173, -352, 839, 797, 1202, 1272, 492, 489, -242, -1360, -1460, -1395, -798, -1071, -1067, -925, -923, -596, -137, -166, -429, -226, -141, -127, 195, -402, 343, -36, 92, 7, 50, 61, 144, -28, 551, 667, 990, 812, 82, 261, 304, 478, 41, 621, 722, 193, 728, 717, 759, 21, --320, -379, -685, -829, -787, -653, -566, -211, 168, 67, 32, 154, 108, -139, 67, 161, 21, 126, 215, 240, 337, 198, 99, -39, 797, -662, 68, 138, 128, -120, -304, -366, 57, 397, 936, 745, 593, 366, 377, 326, 180, 274, 175, 131, 255, 31, 128, 293, 308, 170, -172, 87, 145, 136, 192, 258, 338, 401, 435, 513, 603, 403, -40, 71, 152, -106, -319, -496, -455, -320, -21, -50, -24, -80, -186, --202, 21, -48, -18, 108, 57, 151, 303, 174, 114, 180, 172, 198, 70, 208, 278, 211, 240, 210, 204, 235, 388, 168, -19, 85, -33, 14, -30, -119, -43, -13, 19, 87, 145, 193, 221, 239, 218, 217, 130, 284, 424, 272, 191, 177, 230, 154, 237, 131, 331, -138, 213, 138, 174, 249, 326, 273, 323, 54, -28, -57, -126, -175, -231, -279, -268, -267, -267, -253, -226, -175, -185, -187, -201, -159, --167, -157, 211, 41, 161, 191, 284, 262, 208, 261, 349, 220, 176, 231, 197, 222, 202, 59, 307, -64, -11, -36, -51, -64, -78, --103, -100, -98, -90, -89, -93, -95, -88, -73, -60, -62, -39, -129, 261, 460, 469, 241, 518, 526, 532, 506, 442, 494, 481, 462, -487, 249, 406, 489, -3, -49, -576, 77, -88, -103, -103, -118, -110, -82, -79, -59, -26, -25, -29, -53, -34, -27, -5, -26, -39, -120, -563, -681, -338, -455, -681, -386, -436, -442, -377, -493, -503, -464, -681, -434, -372, -731, -579, -177, -124, -234, -220, -285, -267, -207, --232, -189, -106, -50, -27, -73, -24, -21, 38, -74, 28, -98, -525, -115, -266, -168, -228, -214, -151, -254, -391, -217, -81, -142, -178, --312, -392, -206, -437, -179, -175, -367, -343, -580, -506, -286, -308, -193, -64, -14, -11, -157, -16, 2, 139, -18, 148, -108, -366, -127, --29, -39, -191, -15, -163, 69, -280, 1, -205, -3, -156, -213, -331, -312, -463, -248, -221, -440, -466, -869, -820, -518, -616, -450, -224, --57, -54, -201, -5, 55, 221, -80, 175, -13, -360, 234, 21, 216, 176, 141, 169, 169, 150, 31, 103, 247, 71, -113, -159, -337, --1048, -846, -608, -726, -787, -479, -322, -258, -156, -52, 72, 260, 328, 257, -196, -226, 546, 312, 392, -261, -443, 180, 75, 79, 79, -260, 199, 143, 117, 77, -65, -124, -277, -463, -468, -737, -628, -302, -285, -578, -469, -555, -588, -463, -645, -652, -307, -568, -657, -739, --343, -257, -366, -441, -192, -303, -283, -127, -16, 315, 264, -82, -7, -25, 28, -49, -2, -53, 152, 111, -351, -295, 627, 931, 815, -308, -481, -699, -788, -697, -285, -12, 379, 112, -106, -486, -570, -581, -343, -197, 50, -152, -273, -17, 12, 159, 183, -25, 102, 57, -15, 70, 125, -103, 233, 524, 607, 677, -62, -366, -923, -988, -713, 101, 303, 231, -516, -957, -896, -957, -848, -771, -726, -673, -512, --421, -198, -252, -283, -82, 72, 35, 24, -87, 42, 34, 39, 67, 183, 378, 351, 256, 128, 89, -226, -712, -801, -840, -669, -546, --409, -152, -246, -197, -114, -218, -232, -278, -78, 67, 151, 29, 41, 35, -135, 24, 167, 292, 298, 105, 133, 183, 136, 124, 9, --32, 78, 122, 121, -187, -177, -437, -279, -204, 74, 74, 82, 115, -249, -242, 73, 91, 52, -83, -196, -194, 64, 175, 202, 124, -112, 96, -28, -56, 10, 93, 166, 168, 204, 257, 252, 136, 194, 88, -6, -201, -211, -85, 53, 18, 49, -50, -111, -147, -170, --232, -344, -180, -2, 174, 234, 277, 325, 252, 278, 151, 25, 76, 93, 153, 152, 205, 124, 140, -5, 66, -8, 5, -59, -146, --214, -151, -23, 14, 37, -28, -33, -40, -44, -83, -73, -50, -42, -50, -106, -166, -163, -151, -124, -98, -37, -38, -129, -13, -79, --6, -27, 6, 58, 11, -7, 91, 177, 167, 147, 109, 45, 91, -212, 105, 61, 54, 49, 34, 27, 26, 33, 31, 34, 25, -31, 31, 46, 51, 55, 54, 47, 100, -200, -257, -24, -160, -255, -12, -33, -22, 8, -40, -50, -37, -217, -140, 14, -236, 71, -264, 507, 167, 204, 254, 292, 355, 365, 330, 292, 267, 260, 258, 259, 267, 245, 244, 257, 258, 236, 237, 557, 413, -245, 554, -437, -194, -155, -147, -170, -95, -74, -48, 425, 530, -239, 387, 117, 208, 122, 273, 352, 551, 578, 455, 355, 296, 307, 291, 294, -331, 299, 314, 357, 358, 280, 433, 229, 295, 425, 259, 249, 361, 278, 371, 377, 337, 254, 275, 268, 194, 208, 192, 199, 24, --82, 145, 345, 908, 1022, 763, 540, 353, 328, 310, 321, 384, 275, 286, 364, 347, 285, 387, 451, 361, 327, 294, 284, 300, 185, -96, 228, 56, 183, 254, 177, 129, 66, 118, -193, -242, -307, -34, 276, 1200, 1388, 966, 593, 358, 328, 319, 360, 511, 431, 442, -559, 538, 368, 495, 357, 188, 325, 203, 115, 109, 136, 130, 3, 72, 47, 169, 64, 13, -261, -233, 465, 413, 155, 230, 187, -379, 478, 555, 386, 122, -284, -186, -326, -573, -281, -86, -115, -22, 23, 385, 391, 214, 345, 207, 229, 291, 195, 127, 71, 117, -42, 142, -49, -52, 84, 381, -198, -347, -683, -367, 3, 815, 866, 622, -173, -439, -243, 132, 421, 411, 539, 560, 661, 588, 407, -264, 128, 165, 283, 325, 276, -34, -28, -32, 64, -61, -17, -84, 246, 309, 97, -156, 944, 1390, 1141, 1209, 1650, 1006, 833, 1015, --202, -440, 118, 422, 628, 436, 234, 11, -86, 50, -1, 58, 132, 89, 364, 260, 155, -22, 49, 28, 6, 57, 124, 20, 315, -479, 843, 856, -51, 155, 823, 1604, 2566, 2336, 1765, 805, 178, -123, 146, 71, 171, 1, 208, 184, 24, 18, -15, 35, 3, 129, -315, 161, 154, 120, 17, 77, 115, 38, 108, 341, 388, 453, 230, 160, 284, 1060, 1554, 1335, 1030, 1189, 1150, 1163, 887, 916, 1379, -994, 740, 518, 187, 59, 74, 114, 137, 243, 242, 244, 183, 275, 280, 179, 208, 226, 401, 265, 237, 238, 239, 280, 248, 622, --63, 395, 471, 425, 365, 445, 429, 421, 27, -134, -123, 228, 571, 786, 863, 728, 358, 300, 245, 154, 194, 282, 377, 266, 133, -95, 170, 205, 214, 264, 287, 270, 304, 374, 316, 371, 328, 218, 285, 410, 513, 484, 465, 490, 435, 386, 270, 218, 146, 123, -116, 143, 167, 241, 243, 346, 322, 163, 68, 153, 217, 297, 202, 182, 163, 141, 160, 195, 205, 220, 222, 267, 102, 418, 371, -377, 371, 370, 368, 367, 268, 182, 112, 58, 15, -31, -19, -16, -20, -19, -49, -3, 28, 160, 277, 232, 295, 400, 387, 459, -439, 438, 390, 375, 364, 309, 329, 356, 441, 360, 313, 329, 317, 323, 323, 337, 309, 293, 273, 243, 212, 169, 181, 184, 184, -192, 192, 175, 341, 277, -77, 430, 355, -39, -22, -18, -15, 16, 28, 37, 337, 471, -75, 310, 337, -403, -415, -445, -367, -413, --391, -468, -486, -444, -489, -479, -420, -430, -421, -416, -407, -400, -392, -398, -344, -413, -370, -54, 659, -453, -103, 588, 540, 523, 491, -477, 470, 462, -124, -506, 549, -92, -21, -530, -398, -456, -414, -620, -681, -569, -693, -662, -515, -536, -525, -533, -530, -522, -491, -470, --385, -409, 185, -168, -232, -110, -87, -240, -282, -380, -295, -363, -298, -166, -234, -130, -271, -443, -459, -499, -472, -535, -411, -888, -1051, --795, -1064, -996, -670, -747, -676, -654, -610, -579, -557, -494, -434, -217, -86, -41, -12, -69, 1, -37, -12, -187, -123, -107, -32, -8, --42, -132, -248, -378, -532, -473, -334, -407, -247, -1008, -1287, -957, -1365, -1254, -732, -848, -854, -840, -870, -831, -743, -609, -391, -183, 169, -100, 193, 71, 93, 173, 94, 125, 7, 14, 29, 197, 40, -150, -299, -542, -148, -844, -1134, -1231, -1085, -1025, -937, -805, -598, -627, --1062, -763, -610, -376, -249, -291, -336, -451, -584, -573, -143, -66, 76, 28, 65, 255, 117, 40, 36, 11, 2, 13, -150, -170, -177, --111, -779, -802, -630, -541, -448, -442, -434, -245, -774, -745, -723, -158, -40, -328, -494, -776, -948, -760, -574, -225, 89, 63, 65, 171, -172, -28, -32, -19, 15, -88, -54, -167, 171, 21, -184, -663, 1083, 886, 514, -197, -1667, -2511, -2722, -1718, -1788, -1426, -1252, -1208, -1285, --1545, -1064, -676, -329, -159, -118, -338, -266, -51, 307, -100, -141, -58, -66, -29, -39, -42, -7, -73, 143, 345, 896, 857, 153, 127, --675, -1018, -1400, -926, -594, 19, -989, -1138, -885, -663, -440, -451, -600, -758, -702, -720, -513, -200, 9, 13, 311, 96, 56, 114, 14, --4, 28, -54, 7, 195, 354, 270, 336, 155, 425, -415, -1352, -1352, -1416, -1275, -1004, -403, -481, -469, -694, -491, -509, -713, -549, -407, --212, -116, -149, -154, -8, -51, 154, 169, 158, 68, 120, 145, 288, 162, 141, 80, 123, 174, 322, -23, 303, -414, -682, -560, -587, --332, -302, -570, -210, -25, -37, 94, 180, 253, 242, 155, -5, -64, -21, 196, 236, 163, 151, 84, 72, 26, 38, 90, 158, 84, -90, 137, 189, 94, 108, -161, -123, -172, -174, -150, -169, -205, -200, -198, -205, -246, -246, -189, -135, -43, -62, -38, -11, -36, -139, --151, -26, -44, -78, 14, 168, 219, 232, 47, 72, 52, 130, 94, 68, 51, 89, -36, 452, 8, -25, -91, -130, -183, -239, -293, --228, -150, -85, -19, 36, 87, 70, 57, 47, 27, 54, -17, 69, -41, -71, 30, 2, -79, -77, -70, 25, -27, -10, 92, 68, -176, 138, 42, -31, -117, -61, -99, -116, -131, -144, -179, -132, -111, -89, -71, -52, -24, -37, -42, -48, -56, -50, -74, -82, 97, -493, -135, 92, 556, 548, 534, 504, 504, 495, 472, 129, -131, 551, 190, -122, 433, 158, 523, 310, 353, 323, 433, 476, 497, 467, -457, 465, 438, 433, 433, 449, 454, 456, 448, 391, 548, 187, -201, -796, 321, -161, -735, -751, -748, -689, -716, -707, -661, -152, 364, --785, -264, -432, 454, 236, 240, 263, 572, 694, 707, 626, 571, 590, 521, 509, 511, 566, 584, 588, 541, 517, 521, -266, 280, 258, -162, 93, 292, 261, 282, 128, 303, 338, 208, 257, 34, -8, 315, 38, 338, 191, 63, -38, 541, 831, 956, 854, 762, 793, 622, -599, 638, 709, 721, 737, 601, 638, 375, 198, 251, 228, 272, 106, 296, -10, 198, -28, 125, 28, 188, 101, 72, -126, 147, -35, -365, -21, -191, -178, 694, 1184, 1335, 1104, 926, 993, 766, 738, 806, 928, 968, 958, 810, 708, 490, 171, 432, 194, 324, 257, 301, -168, 68, 62, 38, 125, 227, 197, 116, -122, 166, 85, 222, 359, 229, 111, 490, 635, 712, 965, 871, 405, 261, 184, 77, 314, -318, 185, 249, 501, 368, -52, 277, 230, 164, 135, 233, 127, 56, 70, 91, 39, 43, -25, -116, -153, 184, -389, -208, -50, 150, -57, 167, 246, 318, -44, -279, -632, -305, -143, 132, 350, 624, 1071, 759, 602, 171, -17, 112, 217, 318, 315, 75, 13, 34, 52, -45, 44, -49, 139, 266, 144, -49, 786, 755, 481, 185, 454, 516, 775, 1391, 545, 223, 59, 735, 993, 823, 820, 445, -35, -77, -127, 168, 173, 291, 487, 40, -84, 19, -24, 67, 38, 10, 28, -25, 42, 241, 711, 736, 155, 224, 1018, 1627, 2699, 1999, 1252, -631, -397, -597, -416, 145, 283, 7, 185, 276, 382, 294, 165, -1, -205, 28, 399, 93, 62, 139, 50, 33, 31, -29, 35, 314, -364, 510, 400, 336, -215, 536, 1381, 1229, 1108, 1323, 1599, 1748, 1268, 943, 608, 364, 223, 116, -151, -317, -251, -261, -90, 70, 30, -204, 208, 159, 164, 153, 161, 236, 304, 326, 262, 174, 142, 151, 113, 287, -443, 164, 435, 347, 530, 602, 651, 851, 557, 353, -170, 450, 620, 767, 767, 754, 617, 480, 324, 106, 122, 170, 111, 257, 247, 149, 137, 140, 259, 173, 183, 256, 254, 300, 216, -228, 167, 277, 390, 343, 380, 420, 496, 588, 515, 475, 372, 242, 96, -34, -20, -4, 30, 34, 92, 47, -18, -16, 12, 72, -81, 209, 107, 209, 44, 169, 100, 191, 135, 89, 7, 145, -126, 282, 308, 347, 386, 429, 453, 487, 412, 354, 320, 262, 221, -163, 177, 167, 163, 155, 133, 178, 17, 217, 254, 186, 177, 288, 304, 300, 193, 292, 278, 196, 218, 135, 170, 275, 180, 391, -319, 347, 354, 362, 373, 402, 373, 353, 325, 308, 291, 266, 270, 271, 271, 281, 270, 319, 170, -39, -350, 255, -21, -377, -376, --351, -299, -321, -304, -284, -39, 255, -308, -66, 381, -328, 86, -452, -283, -319, -257, -323, -341, -335, -358, -363, -353, -358, -359, -358, --352, -347, -347, -342, -285, -448, 123, 478, 798, -24, 437, 762, 759, 747, 664, 751, 764, 746, 412, -110, 714, 485, 476, -345, -357, --303, -167, -315, -381, -387, -457, -476, -443, -438, -441, -457, -462, -457, -462, -398, -395, -275, 545, -19, 50, 74, 127, -34, -130, -138, -32, -147, -191, 6, -57, 113, 18, -268, 76, -213, -508, -374, -58, -307, -446, -458, -590, -632, -566, -588, -586, -578, -561, -538, -550, --449, -490, -72, 242, 153, 119, 68, 229, 20, 130, -222, 93, -95, 157, 95, 116, 57, 30, -40, 69, -260, -564, -284, 279, -98, --357, -471, -706, -831, -681, -619, -644, -698, -749, -740, -728, -560, -503, -101, 378, 48, 314, 84, 64, 130, 41, 62, -89, 15, 22, -151, 100, 97, -169, -220, 453, -824, -993, -1045, -1246, -1109, -930, -896, -403, -332, -784, -930, -806, -362, -109, -107, -564, -465, -607, -193, -221, -139, 87, 46, 137, 232, 42, -14, 55, 1, -64, 63, -57, 23, -14, 414, -429, -802, -548, -11, 443, 255, 235, 472, -24, --363, -518, -302, -203, -142, -460, -609, -720, -424, -419, -53, 263, 182, 292, 34, 16, 42, -13, 14, 19, -29, 12, -123, 113, -30, -38, -535, 847, 207, -184, -795, -1923, -1870, -1860, -1580, -1420, -1151, -1119, -1183, -1146, -886, -639, -373, -132, -135, -303, -184, -48, 34, 488, --18, -118, 65, -81, 3, 15, -21, -14, -7, 39, 84, 711, 695, 420, 647, 734, 661, -97, -181, -311, -352, -368, -224, -163, 165, -162, -9, -305, -475, -510, -500, -473, -202, 14, -50, 256, 30, 11, 91, -20, 17, 0, -22, 8, 128, 307, 324, 515, 291, 648, -198, -502, -454, -555, -285, -32, 256, 232, -1, -477, -413, -385, -256, -195, -201, -359, -196, -198, -172, 70, 4, 188, 118, 73, 50, -186, 184, 259, 226, 290, 343, 272, 266, 399, 279, 575, 161, -169, -107, -164, -254, -331, -273, 48, 253, 364, 268, 237, 362, 289, -260, 209, 114, 88, 204, 175, 148, 206, 192, 186, 161, 81, 92, 14, 25, 54, 100, 180, 199, 286, 205, 141, -75, -222, -169, --210, -164, -147, -185, -144, -150, -130, -146, -148, -154, -183, -198, -226, -207, -255, -181, 6, 32, 72, 54, 123, 82, 193, 68, 251, -136, 227, 163, 170, 195, 261, 128, 421, 94, 45, 21, -47, -104, -166, -216, -167, -115, -64, -15, 32, 82, 75, 67, 49, 43, -33, -15, 204, 41, 86, 135, 185, 121, 70, 95, 183, 56, 15, 89, 76, 167, 173, 62, 213, -36, 15, -19, -29, -41, -52, --80, -63, -60, -54, -44, -33, -11, -20, -18, -13, -19, -4, -62, 166, 353, 501, 124, 377, 572, 571, 545, 486, 520, 510, 479, -366, 126, 477, 403, 18, 142, -304, 292, 86, 92, 86, 81, 100, 161, 146, 150, 156, 137, 131, 126, 151, 158, 157, 154, 131, -288, -291, -504, -485, -173, -496, -487, -539, -545, -477, -558, -562, -532, -486, -126, -511, -566, -539, 126, 80, -22, -23, -82, -24, 139, -145, 169, 169, 145, 141, 134, 202, 208, 202, 148, 216, 136, -395, 50, -75, -36, -103, -30, -7, -73, -211, -19, 91, -19, 17, --150, -263, 14, -290, 81, 67, -124, -58, -302, -195, 198, 166, 219, 227, 130, 101, 54, 220, 246, 270, 187, 325, 107, -113, 34, -56, 83, -72, 79, -148, 87, -217, 56, -100, 30, -12, -54, -260, -122, -394, 17, -8, -246, -241, -669, -525, 62, 91, 201, 243, -175, 112, 51, 284, 338, 341, 188, 344, 230, -24, 416, 131, 255, 216, 282, 121, 30, 72, 16, 140, 188, 168, 19, -245, -215, --377, -536, 31, -180, -319, -30, 152, 157, 656, 700, 339, 225, 72, 82, 47, 88, 431, 391, 554, 102, -243, 198, 74, 136, 111, -171, 49, -3, 88, -90, -111, 37, -64, -205, -273, -87, -600, -223, 312, 217, 148, -367, -619, -525, -255, -159, -257, -494, -512, -259, --56, 94, 205, -7, 73, -150, -116, 73, 219, 157, 100, 47, 3, 2, -10, -33, -54, -55, -82, 14, 28, -188, 374, -156, -721, --1151, -1547, -966, -392, -100, 503, 499, -29, 90, 203, 473, 389, 225, 17, 14, 221, 75, 17, 198, 286, -47, -114, 65, -22, 86, -34, 15, 2, -24, -120, 1, 207, 401, 422, 488, 906, 895, 822, 479, 34, -339, -538, -600, -725, -448, -307, -78, -124, -56, -20, --38, -16, -143, -289, -71, 221, 25, 23, 101, 0, -30, -11, 31, 91, 253, 273, 403, 514, 445, -310, -363, -114, -72, 221, 502, -759, 837, 517, 83, -505, -614, -612, -386, -293, -202, -245, -197, -75, -58, -118, 111, 212, 103, 66, 40, 182, 272, 146, 230, 204, -236, 152, 98, 104, -98, -107, 4, 275, 190, 209, 219, 374, 642, 533, 565, 621, 437, 275, 205, 179, 220, 332, 334, 290, 149, -112, 80, -29, 92, 194, 206, 161, 86, 68, 52, 54, 112, 134, 166, 177, 153, -122, -23, 66, -27, 3, 46, 85, 132, 91, -54, 13, 17, 43, 37, 50, 33, 38, 35, 155, 52, -90, 69, 155, 126, 48, 58, 38, 149, 56, 166, 99, 143, 90, 14, --60, -29, -51, 126, 178, 191, 215, 231, 249, 263, 257, 261, 256, 245, 212, 169, 167, 168, 174, 162, 163, 159, -36, 93, 35, -41, 16, 63, 98, 45, -17, 67, 112, 55, 81, 44, 50, 136, -10, 248, 203, 213, 223, 226, 233, 247, 237, 227, 217, 207, -206, 204, 207, 203, 201, 202, 189, 250, -2, -134, -127, 36, -145, -131, -144, -128, -91, -130, -130, -120, -122, 42, -78, -130, 260, -50, 404, -47, 28, 34, 62, 71, 76, 68, 68, 60, 42, 46, 42, 40, 31, 29, 27, 38, 46, -24, 422, 464, 150, 367, -466, 164, 193, 195, 148, 239, 259, 258, 461, 335, 132, 472, 341, 79, -35, 62, 119, 189, 208, 150, 141, 95, 34, 30, 19, -26, 26, 38, 32, 72, 18, 168, 365, 182, 300, 205, 215, 203, 125, 186, 260, 173, 104, 179, 190, 220, 184, 96, 262, 77, --151, -24, 12, 212, 301, 181, 229, 157, 25, 58, 22, 24, -23, -18, -19, 38, -23, 225, 390, 290, 251, 230, 282, 147, 131, --58, 160, 3, 205, 175, 221, 196, 121, 152, 77, 21, -167, -32, 66, 496, 619, 372, 369, 189, -71, -11, -16, -10, 12, 18, -9, 74, -33, 265, 417, 183, 352, 168, 104, 136, 57, 14, -73, 34, 61, 126, 136, 134, -209, -92, 648, -185, -344, -276, -473, --352, -197, -88, 168, 167, -101, -252, -404, -556, -322, -168, -306, -135, -94, 347, 437, 99, 199, 215, 247, 161, 33, -12, 41, -67, --37, 225, 104, 161, 151, 680, -80, -399, -270, 132, 253, 377, 317, 99, 225, 134, -241, -216, -128, 117, 289, 369, 314, 308, 140, -136, 148, 195, 391, 34, -37, 8, -17, -6, -34, -76, -81, -151, -130, -23, 313, -133, 173, -434, -863, -796, -431, 40, 355, 143, --30, -256, -458, -237, -4, 372, 185, 139, 63, 128, 11, 135, 282, 191, 386, 94, -31, 49, -45, 23, -8, 22, 45, 100, 26, --89, 176, 173, 664, 1012, 1739, 1959, 1562, 877, 302, -373, 245, 287, 6, -112, -85, 229, 272, 272, 4, 2, -100, -52, 64, 103, -219, 91, 89, 134, -28, 16, 18, 67, 96, 127, 279, 453, 571, 534, 350, 632, 685, 786, 955, 1207, 1224, 933, 728, 424, 295, --156, -335, -154, -218, -137, -161, 9, 41, 56, 164, 153, 219, 97, 53, 55, 217, 240, 228, 248, 324, 421, 314, 282, 326, 455, -441, 583, 492, 431, 208, 110, 151, 369, 424, 460, 457, 426, 398, 301, 352, 277, 123, 122, 111, 131, 142, 140, 261, 229, 214, -208, 166, 103, -28, 36, 78, 165, 173, 279, 370, 490, 275, 130, 44, 73, 65, 138, 160, 167, 185, 214, 242, 172, 117, 64, -98, 124, 148, 178, 155, 233, 287, 249, 229, 164, 122, 65, 115, 130, 247, 204, 258, 255, 277, 311, 343, 274, 198, 222, 205, -235, 227, 221, 218, 233, 192, 144, 108, 79, 66, 57, 52, 46, 40, 47, 38, 64, 150, 110, 182, 170, 228, 243, 205, 237, -248, 185, 140, 154, 160, 170, 195, 163, 364, 138, 158, 163, 166, 175, 179, 188, 164, 152, 138, 128, 115, 99, 108, 114, 119, -125, 131, 97, 325, 378, 223, 326, 405, 245, 255, 249, 228, 262, 263, 254, 383, 326, 200, 381, 188, -229, -400, -196, -216, -247, --227, -285, -294, -269, -264, -252, -238, -234, -235, -249, -234, -232, -235, -233, -202, -196, -385, -245, 263, -386, -270, 198, 153, 141, 145, -109, 104, 101, -272, -393, 188, -272, -151, -290, -216, -298, -259, -445, -495, -420, -404, -365, -331, -295, -288, -328, -306, -312, -313, -308, --225, -273, -53, -132, -208, -99, -111, -221, -217, -305, -297, -255, -167, -138, -136, -114, -252, -238, -309, -229, -261, -386, -254, -612, -724, --592, -566, -488, -420, -367, -373, -454, -379, -370, -382, -334, -242, -161, -153, -60, -15, -16, -30, -77, -112, -127, -194, -39, -42, -33, -8, -37, -201, -209, -195, -83, -136, -303, -151, -768, -1042, -868, -827, -705, -581, -468, -466, -589, -529, -531, -519, -450, -225, -97, 56, -182, 155, 127, 141, 179, 47, 0, 0, 3, 106, 168, 156, 39, -152, -156, -398, -886, -791, -915, -872, -941, -808, -542, -296, -103, --90, -88, -102, -218, -217, -194, 1, -156, -213, -296, -82, 55, 27, 162, 155, 114, 11, -44, 3, -128, -81, 65, 34, -26, -134, --142, -545, -499, 116, 34, -2, -344, -443, -416, -148, -107, -308, -332, -395, -515, -290, -306, -539, -438, -251, -135, 15, 78, 175, -14, --77, -23, -13, -2, -87, -98, -132, -225, -232, -152, 38, -319, -199, -844, -1276, -1566, -1840, -1728, -1469, -1259, -521, -320, -510, -638, -738, --670, -445, -205, -50, 13, 49, -108, -24, 91, 133, -77, -105, -10, -82, -25, -60, -11, -9, 8, -124, -173, -168, -86, 817, 960, -513, -144, -1021, -1326, -1232, -659, -412, -438, -782, -940, -836, -387, -270, -205, -316, -243, -132, -128, 26, 79, 117, 44, 25, 46, 0, --22, -21, 49, 93, 79, 265, 391, 597, 669, 102, -499, -967, -752, -320, -231, -168, -180, -391, -638, -927, -1071, -1072, -883, -661, -419, --217, -140, -129, -142, -70, -17, 172, 38, 6, 18, 127, 169, 87, 137, 163, 190, 175, 168, 267, -61, 332, -103, -163, -161, -218, --142, -56, -9, 335, 489, 501, 341, 121, -169, -159, -211, -245, -155, -60, 71, 98, 40, 59, 60, 124, 117, 80, 30, 25, 11, -22, 82, 88, 63, 138, 52, -83, -51, -63, -129, -175, -191, -217, -271, -214, -157, -53, -11, 62, 122, 165, 199, 245, 191, 134, -42, 68, 144, 175, 138, 106, 82, 117, 121, 111, 158, 165, 159, 136, 112, 114, 23, 180, -24, -7, -34, -42, -61, -67, -79, --27, 6, 30, 49, 56, 55, 58, 67, 89, 95, 156, 140, 64, 17, -62, 2, -36, -99, -85, -117, -91, -82, -45, -3, -3, -43, 14, -1, -107, -60, -36, -50, -48, -53, -57, -71, -56, -49, -39, -27, -13, 1, 11, 17, 22, 30, 35, 64, -73, -11, -268, -127, -57, 269, 260, 256, 256, 236, 230, 224, -21, -135, 286, -2, -53, 312, 268, 346, 241, 276, 260, 328, 349, 345, 345, -340, 329, 331, 326, 313, 318, 316, 309, 312, 274, 346, 269, 22, -500, 355, 60, -465, -454, -447, -422, -402, -388, -369, 74, 382, --488, 3, -108, 390, 224, 241, 230, 398, 463, 448, 451, 434, 408, 411, 402, 372, 396, 398, 387, 380, 337, 372, -92, 220, 270, -182, 137, 234, 209, 252, 177, 280, 277, 190, 261, 137, 107, 306, 211, 303, 206, 212, 160, 465, 619, 603, 631, 606, 551, 558, -529, 467, 489, 479, 450, 409, 392, 270, 201, 209, 215, 272, 172, 171, 0, 84, 20, 103, 116, 151, 188, 183, 5, 229, 266, -401, 169, 127, 64, 496, 745, 745, 767, 729, 628, 648, 654, 581, 650, 642, 595, 548, 435, 353, 183, 282, 212, 292, 236, 176, -68, -43, -28, 43, 152, 163, 239, 237, -26, 309, -26, 91, 210, 200, 284, 430, 533, 701, 594, 582, 638, 450, 279, -23, 137, -196, 194, 233, 372, 383, 184, 259, 168, 280, 248, 102, 33, -25, -13, -61, -35, 90, 168, 154, 48, 132, -38, 36, 172, 201, -100, 242, 248, 39, 242, 207, 118, -119, -164, -105, 194, 474, 717, 575, 455, 227, 94, 172, 295, 87, 20, 22, 15, 23, -70, --47, -82, -140, -136, 46, 182, 135, -450, -683, -953, -688, 606, 828, 1076, 1045, 757, 463, 375, 498, 621, 656, 643, 451, 99, 60, -102, 212, 297, 230, 149, 53, 3, -13, -42, 1, -27, 30, 21, 32, -82, -156, -222, -231, 922, 1080, 1430, 1505, 1843, 753, 208, -23, 83, 62, -9, -183, -209, -103, 187, 390, 397, 439, 316, 77, 92, 198, 155, 85, 49, 35, 23, 39, 5, 55, 101, 111, -287, 540, 634, 800, 42, 664, 1413, 1524, 1736, 1640, 1419, 980, 490, 196, 173, -16, -77, -105, -195, -249, -165, -222, -150, 17, 95, -163, 129, 28, 39, 138, 128, 160, 158, 232, 253, 267, 248, 252, 224, 441, -4, 439, 557, 434, 441, 480, 600, 840, 696, 552, -391, 417, 374, 231, 222, 165, 11, 45, 33, -29, 34, 114, 241, 253, 208, 130, 112, 90, 138, 139, 153, 186, 165, 245, 237, -389, 300, 342, 353, 317, 309, 348, 351, 357, 376, 439, 485, 415, 346, 271, 285, 293, 302, 312, 322, 292, 239, 217, 208, 195, -142, 172, 134, 248, 187, 234, 198, 245, 248, 256, 232, 283, -81, 188, 209, 260, 298, 339, 386, 439, 385, 315, 260, 198, 157, -109, 140, 160, 188, 204, 216, 288, 135, 246, 266, 193, 179, 234, 232, 235, 166, 210, 180, 131, 140, 84, 116, 170, 204, 232, -204, 231, 242, 255, 263, 285, 252, 239, 221, 212, 198, 171, 192, 202, 211, 230, 231, 272, 248, 117, -180, 273, 108, -228, -214, --196, -164, -160, -144, -127, 85, 248, -183, 53, 243, -287, -85, -362, -234, -270, -242, -313, -333, -327, -334, -324, -304, -287, -287, -307, --307, -309, -312, -302, -255, -370, -76, 214, 625, -160, 185, 565, 555, 545, 495, 541, 548, 521, 174, -215, 553, 226, 327, -306, -245, --246, -183, -343, -411, -410, -456, -438, -389, -338, -333, -395, -405, -418, -431, -377, -349, -321, 301, -91, -52, 19, 47, -136, -172, -207, --99, -176, -169, -62, -76, 55, -42, -212, -11, -213, -281, -229, -144, -460, -590, -588, -666, -609, -500, -381, -371, -509, -509, -519, -551, --427, -435, -184, 30, 13, 55, 46, 141, -93, 16, -203, -41, -47, 106, 6, 100, 65, -40, -76, 153, -139, -201, -102, 100, -326, --560, -649, -809, -787, -645, -449, -424, -656, -688, -723, -765, -580, -487, -243, 162, -6, 211, 138, 135, 54, -21, -40, -99, 34, 112, -121, 160, 111, -100, -69, -272, -792, -799, -744, -755, -993, -1028, -885, -764, -521, -221, -282, -275, -185, -178, -185, -344, -367, -463, -193, -153, -43, 23, 159, 192, 97, -9, -69, -46, -131, -98, 2, 74, 143, 57, -128, -89, -307, -275, -234, 5, 16, 55, 41, 28, --28, 3, -186, -233, -320, -513, -655, -817, -534, -409, -62, 202, 153, 150, -83, -120, -16, 15, 16, -99, -107, -106, -142, -103, -213, --118, -213, -468, -904, -969, -948, -1033, -1286, -1503, -1438, -1073, -720, -482, -967, -1178, -1125, -844, -459, -129, -121, -205, -151, 2, -20, -29, --78, -42, -30, -68, -49, -49, 2, -32, -47, -73, -158, -146, -332, 965, 879, 191, -477, -1329, -1587, -1300, -500, -434, -365, -275, -350, --378, -394, -444, -472, -395, -301, -198, -115, 238, 133, -1, 8, -21, -38, -5, 15, -29, 9, 47, -26, 229, 324, 633, 716, 598, -172, -256, -99, 18, -163, -445, -724, -803, -862, -998, -643, -529, -647, -363, -293, -306, -292, -333, -277, -1, -60, 37, -5, 8, 104, -72, 44, 86, 122, 202, 237, 257, 288, 384, 261, 511, 42, -233, -163, -194, -133, -63, -79, 225, 327, 258, 99, -66, -224, -341, --373, -340, -284, -182, 8, 64, 103, 222, 155, 122, 77, 44, 73, 83, 103, 101, 66, 107, 83, 131, 95, 158, 78, -33, -36, --113, -113, -142, -195, -117, -44, 83, 138, 201, 264, 232, 210, 169, 138, 60, 65, 155, 151, 142, 136, 185, 153, 231, 151, 251, -165, 216, 153, 183, 225, 299, 184, 256, -44, -60, -85, -114, -141, -160, -180, -103, -48, -4, 41, 87, 138, 148, 165, 183, 207, -245, 229, 291, 146, 111, 143, 111, 10, -24, -29, 33, -45, -54, 1, -10, 56, 34, -42, 5, -142, -89, -110, -113, -123, -133, --161, -135, -119, -97, -72, -51, -25, -23, -16, -10, -11, 0, -17, 67, 214, 426, -18, 181, 432, 430, 411, 373, 384, 372, 352, -158, -61, 376, 184, -132, 258, -54, 363, 210, 231, 203, 229, 243, 270, 253, 257, 265, 275, 274, 255, 265, 263, 256, 259, 225, -347, -65, -310, -515, 58, -284, -514, -533, -532, -477, -516, -514, -499, -266, 106, -522, -345, -336, 287, 241, 196, 170, 225, 268, 336, -299, 307, 319, 350, 355, 304, 337, 327, 310, 278, 292, 219, -325, 111, 75, 66, 5, 69, 99, 82, -46, 143, 207, 68, 137, --20, -85, 202, -37, 181, 271, 170, 109, 159, 238, 390, 295, 334, 372, 444, 440, 306, 388, 369, 348, 300, 367, 100, -55, 58, -125, 170, 19, 57, -103, 106, -141, 119, 10, 45, 82, 79, -152, 61, 22, 201, 206, 91, 50, 135, 264, 492, 365, 393, 420, -536, 560, 361, 503, 493, 432, 337, 352, 116, -98, 260, 104, 308, 267, 134, 46, -64, -13, 62, 206, 131, 231, 118, -117, 146, --678, -103, 432, 364, 172, 125, 126, 280, 236, 417, 769, 604, 440, 208, 88, 80, 346, 334, 509, 276, -68, 262, 142, 230, 163, -67, 23, -35, -33, -116, -83, -18, 81, 39, 14, -380, 38, 236, 131, -83, -4, 89, 92, 1, 102, 93, 116, -160, -215, -104, -31, 171, 312, 151, 205, 36, 6, 100, 46, 63, 41, 7, 39, 23, -85, -57, -82, -30, -167, -126, -132, 185, -698, -758, -439, --139, 346, 345, 337, 353, 457, 474, 497, 464, 405, 291, 224, 81, -65, -77, 120, 112, 163, 161, -127, -39, 14, -15, 15, 38, --6, 44, -8, -70, -85, -99, -322, -435, 763, 479, 405, 156, 264, -1, -73, -7, -317, -437, -384, -233, -183, -281, -74, 63, 220, -205, 198, -19, 38, 140, -37, -1, -11, -39, 12, 10, -21, 15, 69, 77, 175, 368, 557, 722, 93, 493, 1170, 1173, 1202, 900, -529, 48, -164, -219, -248, -32, -33, -258, -213, -280, -327, -355, -223, -132, -99, 65, 25, 30, 69, 163, 54, 58, 36, 164, 187, -200, 223, 240, 191, 323, -171, 142, 375, 338, 468, 632, 781, 857, 596, 368, 148, 78, -18, -127, -205, -147, 33, 48, 33, -51, -38, 113, 90, 148, 145, 119, 138, 147, 214, 221, 201, 165, 148, 158, 95, 163, 162, 278, 355, 302, 300, 312, 332, 396, 395, -440, 478, 460, 437, 412, 393, 351, 322, 294, 359, 282, 126, 153, 160, 170, 143, 170, 135, 217, 124, 168, 100, 122, 132, 131, -107, 177, -135, 139, 167, 181, 216, 253, 289, 313, 307, 289, 276, 259, 245, 222, 244, 264, 281, 299, 300, 343, 199, 292, 244, -180, 129, 156, 173, 138, 68, 143, 165, 91, 112, 41, 52, 143, 2, 225, 174, 197, 205, 208, 211, 223, 217, 217, 216, 218, -221, 220, 220, 216, 215, 215, 201, 244, 74, -82, -209, 95, -110, -270, -273, -258, -226, -252, -251, -234, -127, 77, -240, -156, 199, --68, 255, -184, -52, -58, -33, -52, -63, -73, -88, -91, -97, -65, -59, -67, -82, -89, -93, -83, -63, -167, 260, 416, 395, 188, -405, 366, 394, 393, 340, 423, 437, 413, 401, 143, 353, 439, 439, -61, -70, 0, 36, 32, 10, -27, -96, -123, -134, -68, -58, --88, -125, -134, -139, -91, -125, -45, 351, 73, 187, 147, 168, 68, 20, 53, 148, 64, 12, 87, 89, 176, 138, 17, 221, -72, --140, 1, 37, 76, 33, -68, -169, -192, -227, -54, -23, -75, -161, -193, -213, -129, -190, 5, 215, 161, 195, 155, 219, 1, 94, --107, 89, 13, 189, 72, 174, 166, 65, 109, 294, -43, -89, 78, 158, 330, 294, 118, -95, -225, -316, -86, -23, -125, -222, -265, --287, -169, -237, -64, 200, 14, 268, 171, 131, -5, -28, -55, -132, 73, 123, 73, 153, 118, -129, 80, -67, -241, -310, -167, -296, --450, -515, -464, -604, -463, -138, -234, -209, -188, -259, -256, -365, -232, -229, 182, 344, 63, 215, 181, 176, 61, 12, -36, -66, -105, --69, 53, 96, 229, 304, 12, 291, -153, -470, -228, 85, 320, 387, 261, 139, 56, 119, 41, -9, -73, -132, -170, -280, -127, -149, -65, 218, 144, 52, -71, -71, -31, 7, 6, -84, -78, -85, -124, -202, -301, -149, 6, -518, -555, -38, 142, 1, -129, -401, -614, --705, -632, -446, -462, -433, -452, -450, -362, -219, -150, -211, -40, 189, 69, -80, 8, 60, -4, 4, -6, -23, 29, -9, -11, 60, --98, -180, -412, 680, 351, 30, -192, -699, -386, -251, -403, -47, 19, 8, 1, -66, -224, -158, -166, -166, -197, -185, -76, 247, 157, --95, -22, -33, -61, -36, 10, -30, -8, 15, -62, 95, 204, 492, 562, 819, 957, 885, 862, 559, 301, -137, -614, -454, -308, -86, -60, 53, -87, -168, -241, -325, -236, -190, -166, 29, -25, -24, 42, 64, 136, 57, -11, 56, 122, 230, 313, 350, 391, 425, 603, -430, 347, 233, 339, 356, 435, 412, 285, 212, 42, -142, -278, -318, -297, -292, -254, -156, -165, -134, -31, 65, 116, 192, 122, 79, -94, 131, 181, 137, 195, 204, 186, 187, 202, 224, 282, 314, 207, 137, 185, 151, 188, 206, 235, 278, 339, 419, 389, 353, 329, -288, 250, 206, 216, 177, 252, 301, 211, 157, 141, 177, 114, 180, 100, 214, 113, 162, 113, 183, 260, 344, 277, 232, 134, 104, -106, 91, 79, 65, 54, 57, 51, 52, 69, 104, 150, 148, 150, 136, 141, 115, 112, 300, 185, 220, 202, 233, 198, 160, 180, -223, 145, 117, 135, 125, 146, 157, 107, 215, 56, 84, 78, 75, 72, 67, 57, 66, 75, 84, 95, 100, 110, 95, 89, 85, -75, 79, 20, 206, 293, 279, 191, 309, 282, 290, 278, 242, 270, 263, 251, 281, 185, 215, 286, 86, -10, -271, 40, -15, -18, --12, -42, -47, -25, -41, -40, -41, -14, -7, -9, -11, -12, -13, -12, -9, 48, -263, -281, -35, -214, -293, -86, -116, -121, -92, --137, -142, -146, -285, -196, -91, -315, -211, -60, 15, -42, -28, -114, -133, -65, -112, -104, -100, -25, 9, 3, -19, -41, -39, -55, -6, -72, -181, -27, -83, -39, -74, -111, -83, -138, -186, -77, -3, -64, -38, -87, -171, -34, -212, -99, 30, -70, 5, -191, -253, --122, -233, -212, -205, -59, -7, -32, -44, -66, -62, -60, 29, -85, -147, -21, 65, 37, -55, -53, -113, 0, -158, 59, -31, -41, -10, -3, -194, -102, -13, 3, 93, -38, 19, -263, -387, -172, -331, -326, -304, -107, 2, -4, -84, -140, -140, -141, 6, -84, -95, -166, 123, 189, 178, 75, 0, -62, -22, 69, 176, 103, 168, 23, -108, 66, -858, -394, -86, -91, -194, -319, -379, -296, -391, -223, -203, 230, 241, 201, -27, -70, 197, 102, 124, -57, -114, 151, 190, 147, 69, 21, 27, -20, -62, -127, -91, -35, 24, 24, 105, --585, -48, -58, 83, -112, -147, -214, -242, -287, -122, 0, 62, -29, -95, -288, -198, -217, -308, -294, -112, -90, 40, 50, -130, -25, --8, -30, 6, -4, -85, -58, -111, -142, -293, -319, -337, 23, -462, -330, 75, 19, -481, -597, -700, -742, -296, -162, -268, -149, -170, --357, -300, -271, -198, -152, 3, -101, 9, 83, -203, -62, 37, -5, 13, 11, -10, 11, -45, -52, -40, -92, -338, -369, 369, -111, --785, -1210, -1463, -829, -522, -453, -373, -360, -393, -366, -359, -367, -285, -250, -167, -211, -86, -64, 43, 86, -113, -71, -79, -99, -18, --37, -65, -29, -3, -54, 0, 98, 342, 440, 434, 405, 323, 184, -15, -378, -663, -824, -634, -510, -468, -353, -244, -175, -237, -256, --189, -208, -149, -173, -187, -94, -50, 24, 58, 88, 20, -1, -37, 75, 127, 189, 291, 324, 318, 309, 86, 13, 203, 311, 503, -639, 641, 434, 215, -13, -182, -411, -528, -519, -438, -351, -203, -146, -70, -33, 41, 57, -44, -35, 3, 49, 134, 176, 216, 205, -197, 180, 183, 153, 122, 100, 68, 181, 265, 224, 226, 218, 241, 300, 303, 325, 360, 350, 335, 300, 273, 238, 216, 197, 209, -160, 108, 115, 119, 125, 113, 107, 92, 106, 38, 83, 43, 51, 63, 66, 70, 94, 60, 108, 137, 135, 164, 184, 201, 204, -210, 215, 219, 225, 230, 236, 221, 208, 192, 172, 162, 132, 85, 122, 76, 87, 63, 66, 91, 61, 46, 94, 141, 113, 121, -97, 84, 132, -8, 177, 161, 166, 169, 167, 169, 173, 184, 193, 201, 209, 216, 227, 212, 200, 191, 178, 166, 179, 1, -46, -50, 15, -59, 43, 32, 35, 49, 19, 12, 18, -41, 27, 55, -43, 180, 179, 303, 129, 147, 172, 174, 208, 213, 200, 188, -177, 151, 178, 187, 202, 180, 175, 174, 178, 162, 160, 316, 227, -118, 323, 235, -116, -89, -82, -85, -40, -30, -34, 243, 322, --130, 220, 150, 195, 122, 186, 198, 311, 344, 304, 260, 210, 150, 195, 223, 270, 221, 215, 223, 232, 188, 243, 117, 190, 277, -172, 154, 187, 154, 208, 219, 224, 180, 153, 185, 157, 170, 215, 223, 113, 101, 210, 214, 416, 490, 386, 327, 250, 132, 261, -304, 397, 277, 251, 256, 248, 211, 191, 236, 225, 248, 208, 158, 98, 53, 39, 111, 84, 142, 92, 156, 170, 70, 177, 316, -111, 54, 197, 207, 580, 720, 611, 492, 306, 81, 225, 370, 536, 384, 339, 343, 336, 227, 196, 167, 154, 256, 215, 154, 36, --13, -71, -75, 93, 134, 55, 151, 137, -26, 256, -198, 193, 214, 302, 180, 279, 268, 268, -120, -129, 281, 186, 118, 22, 35, -51, 14, 152, 211, 312, 243, 195, 325, 184, 114, 12, 39, 4, -70, -65, -37, 54, 105, 198, 320, -123, 345, 76, -118, -64, --210, 190, 270, 24, 123, 98, -6, 66, 109, 31, 121, 216, 346, 289, 213, 163, 159, 121, -11, -2, 22, -2, 4, -14, -60, --42, -91, -132, -212, -199, -138, 218, -257, 1, 292, 525, 819, 852, 759, 403, 102, -97, -71, 256, 392, 291, 179, 20, -114, -100, --76, 64, 210, 131, -56, 44, 91, 9, 12, 7, 16, 14, -32, 0, 45, -76, -166, -256, 162, -192, -420, -204, 256, 490, 418, --141, 98, 157, 174, 150, 114, 33, 122, 151, 121, 78, 38, 76, 113, 108, -52, -39, -43, -65, -15, -5, -66, -46, -49, -134, --69, 39, 214, 241, 751, 1291, 1502, 1270, 894, 440, 121, -58, 49, 130, 311, 186, 207, 307, 91, -42, -60, -79, -60, -17, 15, -15, -50, 25, 54, 80, 37, 13, 62, 131, 221, 326, 449, 500, 444, 790, 237, 523, 635, 688, 780, 807, 717, 546, 120, -189, --352, -425, -376, -246, -145, -94, -126, -96, -66, -39, 54, 96, 95, 47, 17, 57, 159, 220, 219, 239, 248, 239, 266, 330, 305, -431, 386, 401, 438, 489, 518, 555, 601, 697, 664, 649, 612, 497, 365, 221, 183, 148, 105, 146, 143, 206, 238, 162, 147, 152, -147, 146, 115, 131, 133, 121, 119, 132, 175, 221, 247, 308, 133, 318, 320, 357, 390, 427, 453, 485, 413, 356, 311, 275, 261, -251, 232, 206, 175, 150, 101, 97, 142, 184, 247, 208, 244, 296, 293, 324, 309, 311, 295, 272, 276, 240, 260, 287, 357, 324, -312, 332, 335, 344, 351, 372, 353, 345, 333, 323, 308, 294, 283, 275, 267, 258, 250, 222, 311, 272, 64, 351, 301, 65, 74, -77, 80, 95, 101, 109, 295, 379, 58, 278, 349, -194, -195, -238, -165, -186, -165, -211, -224, -222, -230, -230, -230, -211, -203, -187, --205, -206, -201, -197, -165, -210, -167, 13, 406, -218, -24, 339, 321, 315, 304, 298, 294, 274, -30, -244, 341, -2, 96, -285, -182, --197, -155, -265, -310, -307, -346, -353, -346, -301, -266, -223, -273, -284, -271, -248, -198, -215, 132, -63, -75, -30, -27, -142, -148, -190, --125, -156, -131, -88, -109, -34, -80, -169, -154, -272, -205, -188, -104, -320, -410, -424, -489, -490, -488, -381, -327, -253, -345, -357, -332, --267, -223, -118, -21, 22, 69, -2, 7, -84, -33, -93, -39, -3, 14, -51, 2, -6, -62, -134, -14, -283, -197, -138, -17, -329, --492, -526, -634, -699, -700, -569, -437, -319, -477, -518, -477, -372, -230, -134, 74, 66, 201, 110, 94, 22, -47, -56, -37, 71, 104, -42, 78, -2, -45, -52, -565, -422, -434, -429, -399, -488, -576, -632, -742, -558, -51, -69, -36, 58, -53, -80, -87, -130, -219, -213, -29, 45, 183, 87, 38, -2, 18, -8, -75, -94, -59, -26, 25, 74, 155, -459, 51, -179, -88, -207, -358, -274, -241, -305, -235, --232, -231, -128, -98, -188, -311, -466, -601, -436, -263, -60, 104, 47, -113, -61, -21, -3, 6, -22, -64, -68, -111, -131, -205, -298, --264, -38, -147, -34, 94, -50, -684, -858, -1040, -1177, -844, -605, -470, -570, -684, -712, -596, -396, -147, -157, -147, -168, -79, -27, -127, --74, 13, -1, -26, -24, 4, -20, -81, -88, -36, -106, -155, -216, -116, -530, -1473, -1764, -1798, -1297, -837, -404, -359, -318, -291, -282, --238, -179, -295, -378, -367, -335, -182, 3, 53, -19, -97, -77, -70, -70, -3, -32, -95, -86, -105, -227, -169, -189, 35, -9, 827, -492, -127, -372, -657, -1082, -1190, -924, -711, -611, -664, -592, -483, -331, -156, -74, -55, -70, -120, -147, -70, -81, -78, -8, 1, -18, --14, -15, 18, 47, 134, 227, 432, 505, 511, 474, 452, 119, 85, 202, 258, 279, 113, -288, -310, -334, -319, -479, -537, -498, -494, --442, -373, -295, -178, -12, 44, 23, -34, -73, -37, 36, 111, 175, 205, 194, 189, 158, 222, 204, 218, 178, 169, 211, 259, 300, -329, 294, 302, 323, 279, 203, 159, 149, 141, 121, 74, 32, -27, -37, -80, -76, 26, 51, 97, 117, 149, 149, 146, 95, 96, -97, 110, 91, 116, 131, 172, 166, 342, 223, 219, 190, 183, 169, 148, 127, 143, 179, 198, 226, 242, 258, 228, 205, 185, 164, -159, 94, 129, 82, 60, 109, 103, 70, 89, 96, 141, 134, 168, 202, 204, 243, 219, 214, 146, 167, 180, 167, 160, 155, 153, -143, 160, 166, 174, 177, 183, 198, 185, 177, 169, 152, 148, 132, 97, 175, 366, 78, 174, 396, 389, 380, 371, 366, 360, 356, -212, 119, 396, 236, 160, 255, 106, 293, 200, 228, 206, 265, 281, 276, 266, 257, 244, 247, 252, 273, 262, 261, 264, 264, 233, -316, 121, -89, -397, 187, -78, -391, -389, -382, -339, -359, -359, -348, -69, 219, -393, -122, -191, 256, 191, 192, 162, 303, 351, 335, -322, 294, 271, 261, 281, 344, 331, 334, 344, 323, 313, 296, -131, 176, 173, 103, 57, 140, 147, 171, 112, 197, 201, 107, 139, -35, 62, 222, 39, 107, 167, 155, 101, 378, 487, 449, 416, 357, 296, 296, 324, 442, 398, 395, 416, 367, 394, 212, 122, 170, -185, 163, 41, 96, -23, 131, 41, 112, 31, 59, 54, 80, 17, 115, 26, 51, 43, 28, -42, 347, 523, 508, 489, 387, 281, -247, 353, 547, 526, 527, 546, 468, 437, 261, 65, 249, 186, 227, 162, 69, 5, -59, 17, 84, 123, 41, 97, 59, 22, 181, --367, 267, 414, 424, 399, 610, 624, 554, 285, 280, 655, 451, 323, 205, 166, 181, 305, 347, 453, 269, 71, 279, 266, 163, 68, --11, 38, 28, -48, -22, 2, 17, 117, 119, 170, -275, 190, 244, 194, 22, -326, -105, -62, -167, -95, -93, -68, -123, -65, 124, -191, 294, 478, 339, 333, 164, 27, 49, -24, 71, 104, 42, 22, -12, -30, -19, -66, -46, -169, -116, -83, 244, -138, 158, 246, -385, 802, 903, 932, 724, 458, 272, 262, 480, 581, 612, 427, 218, 55, -22, 87, 152, 129, 125, -31, 16, 46, 21, 17, 25, -30, 3, -61, -101, -55, -98, -208, -169, -359, -648, -699, -388, 545, 387, 284, 168, -39, -58, 46, 51, 81, 109, 139, 179, 228, -222, 205, 178, -48, -9, -28, -23, -9, -11, 21, 0, -58, -76, -103, -166, -200, -157, -132, -155, 526, 895, 1174, 844, 478, 140, -80, 240, 148, 120, 134, 30, -6, -2, 23, 30, 9, -59, -9, 74, 36, 114, -47, 10, 22, 0, -9, 29, 71, 107, 159, -232, 454, 539, 444, 689, 117, 461, 669, 622, 650, 611, 438, 194, -129, -271, -290, -239, -177, -116, -156, -126, -101, -55, -49, -73, --8, 19, -4, 39, 60, 113, 172, 206, 270, 270, 276, 270, 273, 318, 286, 406, 359, 467, 592, 636, 735, 714, 737, 793, 647, -501, 335, 265, 184, 107, 90, 61, 23, 32, 69, 52, 36, 72, 126, 153, 142, 190, 121, 188, 104, 171, 134, 188, 212, 216, -199, 315, 174, 445, 450, 467, 492, 517, 531, 554, 491, 457, 415, 376, 330, 274, 263, 249, 239, 228, 203, 210, 120, 233, 252, -214, 218, 289, 323, 339, 296, 364, 376, 333, 355, 309, 332, 413, 344, 459, 414, 433, 432, 442, 451, 471, 451, 436, 421, 399, -382, 363, 362, 355, 348, 341, 326, 342, 280, 164, -29, 333, 181, -42, -36, -20, 13, 9, 22, 42, 210, 383, 30, 200, 443, --147, 61, -245, -130, -145, -123, -140, -151, -170, -172, -176, -181, -172, -163, -141, -159, -159, -154, -149, -119, -209, 90, 279, 453, 2, -246, 411, 422, 421, 390, 423, 424, 405, 232, -41, 421, 284, 302, -192, -159, -128, -105, -127, -157, -212, -229, -251, -256, -255, -238, --181, -223, -216, -201, -159, -155, -109, 320, 22, 61, 58, 76, -29, -56, -48, 64, -50, -84, 3, -39, 73, 96, -89, 28, -208, --242, -161, -114, -109, -170, -300, -317, -353, -377, -342, -300, -170, -269, -267, -245, -167, -186, -1, 175, 132, 124, 54, 110, -33, 64, --76, 118, -7, 80, 18, 39, 49, 122, 3, 51, -216, -214, -123, -81, -38, -123, -326, -347, -457, -515, -506, -428, -254, -381, -380, --332, -205, -174, -16, 231, 58, 247, 91, 47, -20, -46, -26, -17, 66, 43, 17, 1, 1, 49, -19, -79, -260, -454, -316, -270, --218, -269, -412, -595, -541, -199, -333, -283, -55, -116, -128, -261, -199, -248, -17, 270, 84, 183, 94, 67, -2, 16, 16, -48, -24, -1, 33, 116, 191, 209, -93, 115, -39, -127, -153, -319, -285, -195, -37, -147, -171, -110, -127, -102, -63, -196, -297, -400, -208, -149, -85, 126, 48, 6, -30, 4, 15, -2, -25, -29, -44, -68, -106, -143, -230, -127, -85, 51, 114, 74, -35, -241, -293, -451, -612, --721, -633, -457, -541, -536, -449, -388, -232, -26, -54, -130, 13, 22, -11, 13, -5, 18, 23, -4, -19, 0, -30, -87, -117, -36, --117, -144, -88, -465, -689, -955, -926, -901, -772, -570, -262, -161, -52, 34, -37, -73, -97, -172, -242, -285, -208, -128, 87, 77, -51, --65, -26, -10, -14, -1, -2, -47, -90, -134, -232, -207, -296, -254, -362, 853, 483, -94, -326, -735, -804, -748, -542, -447, -401, -397, --286, -264, -317, -172, -51, -45, -29, -43, -7, 86, 10, -50, 8, -5, -54, -19, -17, 65, 32, 113, 188, 426, 548, 582, 574, -644, 392, 235, 248, 115, -70, -346, -655, -509, -397, -321, -309, -292, -239, -334, -360, -319, -295, -233, -76, -42, -37, 26, 25, 62, -135, 138, 176, 187, 223, 252, 268, 253, 241, 316, 348, 351, 298, 282, 362, 414, 377, 364, 326, 194, 32, -109, -95, -89, -65, --70, -69, -94, -84, -118, -74, 44, 67, 93, 104, 154, 137, 181, 119, 195, 170, 225, 220, 266, 304, 359, 325, 509, 322, 286, -258, 219, 184, 144, 123, 137, 175, 189, 208, 215, 226, 202, 183, 164, 153, 140, 100, 230, 137, 158, 197, 227, 196, 196, 227, -289, 241, 242, 290, 288, 342, 344, 297, 328, 193, 222, 204, 195, 192, 187, 171, 180, 180, 186, 184, 184, 191, 181, 176, 170, -158, 158, 114, 245, 360, 469, 226, 378, 502, 504, 495, 472, 491, 491, 483, 409, 269, 506, 441, 210, 133, -124, 190, 97, 110, -97, 119, 125, 131, 126, 120, 111, 109, 114, 134, 134, 137, 140, 141, 127, 209, -104, -232, -244, -47, -237, -262, -278, -276, -225, --285, -294, -281, -235, -17, -242, -271, -266, 105, 117, 72, 45, 85, 104, 121, 123, 111, 90, 80, 101, 163, 164, 168, 175, 156, -191, 132, -166, 81, 11, 12, -32, 2, 36, 19, -29, 47, 88, 17, 19, -53, -21, 90, -132, 21, 108, 21, 12, 77, 101, -145, 137, 103, 49, 27, 57, 173, 179, 192, 212, 189, 262, 105, 9, 85, 91, 72, -38, 27, -61, 114, 3, 87, -43, 25, --26, -6, 24, 6, -90, 70, 108, -41, -120, -39, -5, 80, 116, 71, -9, -59, 13, 212, 219, 230, 250, 217, 304, 160, 38, -255, 128, 168, 121, 61, 7, -17, 104, 69, 92, 61, 31, -3, 153, 105, -476, -90, 141, 192, 230, 314, 291, 278, 131, 144, -370, 277, 233, 257, 134, 115, 301, 244, 307, 88, 18, 268, 170, 125, 43, -6, 38, 37, -21, -11, 19, 31, 131, 65, 17, --340, -65, 379, 384, 10, -308, -483, -441, -149, -115, -45, -15, -143, -157, -89, 13, 71, 134, 77, 171, 102, -25, 6, -16, 74, -98, 29, 2, -24, -13, -8, -61, -69, -157, -109, -123, 20, 36, 141, 29, 6, 115, 248, 307, 248, 251, 218, 156, 234, 259, -196, 253, 193, 99, 52, 173, 189, 24, 74, -8, 9, 23, 27, 31, 22, 14, -28, -87, -135, -95, -93, -285, -31, -619, -740, --478, -399, -187, -211, -197, -48, -191, -173, -142, -155, -160, -177, -90, -13, 40, 93, 152, 153, -88, -56, -26, -12, 7, -1, 23, --8, -19, -70, -97, -116, -164, -221, -358, -409, 212, 78, 2, -218, -403, -326, -182, -85, -148, -169, -196, -152, -123, -152, -173, -123, --23, -65, 19, 94, -38, 38, -6, 26, 24, -40, -19, 21, 8, 23, 28, 46, 265, 376, 367, 319, 248, 381, 506, 379, 306, -57, -131, -244, -271, -250, -216, -173, -175, -151, -201, -201, -106, -115, -104, -112, -104, -70, -93, 25, 111, 180, 175, 174, 250, 268, -302, 357, 276, 261, 306, 365, 253, 354, 439, 430, 507, 448, 425, 392, 228, 64, -114, -95, -89, -88, -57, -36, -15, -3, 61, -23, -32, 36, 72, 95, 87, 119, 109, 185, 127, 219, 193, 255, 252, 232, 193, 260, 246, 349, 352, 340, 333, 332, 329, 334, -326, 336, 327, 308, 273, 235, 223, 208, 194, 173, 152, 143, 101, 171, 160, 166, 170, 211, 252, 247, 224, 292, 328, 306, 321, -296, 306, 359, 223, 368, 336, 340, 340, 342, 344, 348, 340, 330, 324, 311, 304, 295, 289, 281, 275, 271, 261, 276, 165, 87, -80, 201, 93, 75, 73, 86, 115, 98, 106, 122, 146, 255, 151, 143, 375, 47, 242, -33, 34, 42, 46, 72, 72, 48, 49, -38, 16, 22, 29, 51, 42, 43, 43, 48, 53, 5, 265, 302, 152, 216, 290, 146, 172, 180, 167, 199, 202, 201, 283, 194, -169, 307, 253, 43, 10, 59, 49, 133, 145, 79, 81, 41, -16, -22, -11, 52, 41, 57, 62, 91, 60, 120, 263, 140, 190, -133, 136, 113, 87, 133, 214, 119, 64, 115, 83, 139, 232, 101, 187, -1, -47, 63, 34, 221, 255, 99, 127, 44, -81, -64, --31, 108, 58, 72, 75, 107, 67, 165, 277, 218, 174, 134, 148, 56, 94, 21, 212, 40, 111, 109, 80, 105, 266, 149, 199, -2, -36, 61, -10, 299, 371, 161, 208, 65, -157, -166, -96, 115, 86, 114, 128, 178, 114, 183, 284, 144, 234, 125, 61, -3, --24, 4, 60, 76, 31, 43, -18, 70, 246, 159, 104, -15, -96, 85, 151, 239, 239, 219, -78, -187, -124, -160, -150, -85, -46, --36, -145, -8, 23, 203, 368, 204, 199, 125, 95, 15, 39, 36, -28, 12, 52, 131, 180, 195, 118, 74, 183, 366, -10, -91, --210, -258, -156, 142, 39, 29, 19, -12, -23, 10, -9, 35, 136, 173, 109, 198, 105, 56, 95, 33, 46, 20, -14, -33, -9, --16, -45, -96, -88, -83, 0, -41, 134, 88, -11, 89, 313, 502, 489, 256, -61, -187, -157, -138, -52, 37, 56, 63, 60, 52, -15, 245, 132, 46, 112, 77, 49, 27, 23, -4, 6, -38, -76, -84, -10, -107, -150, 18, -546, -456, 4, 230, 104, 81, 2, --172, 71, 178, 191, 84, 9, -47, -75, -26, -3, 58, 50, 164, 60, -19, -3, 7, 26, 17, 2, 12, 0, -61, -100, -148, --111, -216, -373, -484, 392, 219, -52, -124, -270, -34, 54, -19, -22, -3, 136, 69, 58, 77, -49, -92, -85, -33, 4, 100, 80, -20, 30, 40, 20, -31, 12, 11, 42, 4, 36, 63, 216, 334, 394, 408, 650, 679, 532, 387, 148, -212, -413, -416, -364, -312, --280, -187, -126, -76, -79, -105, -107, -156, -153, -86, -101, -63, 22, 75, 119, 182, 166, 178, 180, 262, 327, 396, 330, 353, 465, -564, 409, 348, 287, 324, 351, 310, 253, 163, 63, -40, -162, -164, -182, -198, -167, -134, -107, -52, -37, 49, 114, 88, 73, 76, -99, 84, 148, 161, 258, 245, 298, 322, 345, 372, 386, 376, 400, 328, 295, 291, 257, 235, 218, 215, 192, 175, 154, 130, 112, -106, 93, 77, 53, 36, 1, -11, 147, 105, 176, 191, 257, 275, 272, 307, 343, 312, 298, 333, 324, 342, 359, 317, 401, 255, -271, 264, 261, 263, 261, 260, 244, 233, 225, 214, 202, 186, 182, 178, 176, 174, 179, 134, 305, 361, 321, 323, 400, 348, 359, -359, 348, 376, 383, 384, 432, 375, 361, 436, 310, -46, -186, -34, -44, -52, -50, -63, -68, -71, -66, -68, -79, -77, -73, -61, --55, -49, -47, -45, -31, -13, -161, -114, 130, -167, -139, 90, 72, 71, 96, 47, 38, 42, -146, -167, 128, -137, -77, -103, -30, --75, -79, -127, -143, -145, -122, -125, -156, -153, -139, -102, -84, -74, -72, -68, -17, -57, 7, 1, -68, -21, -36, -86, -62, -96, --71, -77, -42, -31, -69, -47, -2, -48, -153, -120, -34, -89, -71, -164, -209, -226, -181, -196, -268, -264, -237, -170, -130, -104, -91, --64, 3, 8, 6, 50, 38, 11, -24, -30, -32, 30, 33, 37, -28, 24, -40, -29, 100, -55, -83, -83, 13, -92, -114, -281, --364, -372, -280, -289, -398, -414, -375, -260, -207, -168, -147, -106, 29, 40, 109, 184, 128, 107, 78, 45, -14, 21, 152, 64, 55, -86, -24, -8, 261, 32, -387, -302, -159, -98, 55, -50, -116, -104, -169, -149, -89, 24, 72, 129, 34, -1, 69, 18, 25, -67, -86, 194, 103, 89, 51, 21, 44, 31, -22, -20, 35, 90, 129, 29, -113, -306, -100, 367, 191, -140, -212, -573, -531, -99, -96, --12, 18, -56, -121, -163, -205, -248, -263, -197, -67, 27, -5, -4, 11, 41, 50, 23, -8, -29, -16, -5, -40, -77, -86, -83, --103, -155, 39, -57, -125, -211, -529, -421, -399, -440, -197, -107, -164, -304, -347, -265, -220, -115, 34, 43, 119, 150, -37, -3, 44, -12, 11, 18, 18, -4, -1, -57, -94, -113, -112, -144, -245, -10, -545, -364, -298, -505, -965, -792, -604, -310, -235, -196, -214, -257, --261, -200, -290, -264, -183, -98, 17, 98, -20, -57, -23, -19, 7, 12, 10, -17, -9, -48, -75, -93, -90, -228, -389, -478, -71, --655, -1121, -1090, -900, -650, -486, -412, -361, -344, -373, -373, -335, -241, -174, -133, -94, -38, -12, 5, -93, -58, 52, 27, 5, -42, -4, 23, -39, -67, -89, -106, 4, 96, 197, -66, 540, 355, 262, 91, -130, -388, -492, -518, -329, -211, -171, -149, -177, -210, -223, --218, -146, -153, -107, -41, -95, -97, -113, -19, 77, 138, 138, 146, 189, 259, 313, 356, 317, 294, 392, 373, 178, 219, 192, 145, -140, 40, -64, -202, -258, -323, -387, -326, -272, -229, -199, -173, -142, -122, -95, -84, -44, 9, 40, 57, 67, 81, 129, 172, 192, -241, 255, 288, 272, 254, 238, 228, 301, 193, 188, 155, 129, 102, 89, 72, 88, 99, 100, 92, 73, 56, 47, 40, 32, 22, -25, -9, 12, 8, -1, 57, 74, 71, 101, 100, 131, 160, 203, 237, 234, 249, 229, 219, 137, 170, 175, 163, 160, 157, 152, -144, 143, 139, 139, 135, 134, 131, 131, 129, 128, 125, 126, 127, 75, 107, 271, 76, 112, 300, 297, 299, 306, 298, 299, 305, -178, 130, 341, 185, 197, 210, 222, 206, 170, 192, 177, 229, 239, 218, 227, 216, 186, 188, 190, 200, 208, 212, 211, 214, 196, -227, 235, 111, -187, 252, 116, -172, -154, -144, -121, -124, -122, -106, 118, 265, -141, 101, 30, 246, 167, 183, 153, 283, 325, 273, -307, 272, 194, 179, 180, 217, 252, 276, 276, 275, 248, 278, 61, 192, 201, 136, 115, 168, 165, 208, 213, 204, 174, 155, 144, -113, 223, 230, 167, 159, 141, 181, 124, 374, 457, 338, 420, 348, 183, 167, 174, 247, 297, 328, 328, 309, 302, 253, 234, 213, -162, 160, 106, 109, 59, 118, 181, 90, 82, 140, 74, 107, 255, 194, 159, 168, 103, 95, 3, 380, 539, 402, 529, 432, 159, -107, 129, 258, 382, 455, 459, 416, 351, 299, 217, 235, 170, 167, 107, 50, 5, 23, 145, 80, 54, 87, -1, 93, 324, 250, -4, 228, 299, 426, 564, 552, 535, 569, 392, 274, 184, 205, 152, 45, 81, 90, 106, 211, 326, 336, 272, 287, 189, 151, 110, -37, 61, 46, -18, 22, 82, 176, 206, 128, -28, -13, 146, 583, 83, -92, -150, -206, -97, 184, 134, 130, 126, 69, 40, 83, -121, 228, 392, 322, 256, 193, 36, 48, 116, 95, 88, 49, -1, -19, 3, 35, 9, -32, -23, 32, 54, 19, -11, 7, 23, -220, 607, 868, 935, 752, 478, 262, 192, 277, 381, 483, 330, 183, 65, 96, 152, 324, 161, 83, 139, 107, 57, 26, 41, 16, -9, -44, -62, -53, -90, -154, -181, -22, -400, -33, 415, 595, 667, 453, 267, 3, 91, 113, 143, 79, 49, 69, 108, 175, 177, -214, 167, 150, 32, 25, 33, 25, 48, 53, 5, 6, 17, -13, -48, -44, -56, -138, -343, -420, -239, -270, -134, -33, 198, 386, -446, 344, 279, 250, 325, 168, 92, 122, 22, -34, -49, 31, 80, 126, 23, 46, 84, 37, 21, 10, 43, 51, 8, -40, -64, --70, -47, 20, 84, 76, 457, 649, 553, 299, 28, -160, -197, -91, -133, -150, -180, -43, 37, 61, 67, 64, 11, -3, -29, -44, --63, -41, 7, 72, 103, 122, 148, 167, 187, 296, 359, 396, 364, 413, 482, 565, 375, 370, 304, 276, 251, 176, 70, -40, -85, --121, -188, -197, -218, -236, -215, -198, -178, -123, -79, -18, 25, 41, 68, 88, 93, 125, 148, 213, 250, 268, 291, 339, 348, 362, -359, 377, 196, 266, 252, 255, 248, 247, 259, 270, 221, 167, 122, 71, 26, -18, -8, -3, -3, 0, -11, 7, 25, 59, 107, -102, 141, 182, 201, 236, 245, 271, 275, 292, 286, 263, 269, 266, 292, 228, 222, 229, 228, 232, 232, 240, 214, 199, 183, 166, -149, 124, 134, 137, 141, 146, 149, 144, 224, 201, 91, 251, 224, 97, 112, 124, 136, 154, 168, 185, 267, 300, 148, 250, 252, --116, -46, -163, -96, -112, -100, -121, -132, -148, -136, -138, -154, -148, -146, -143, -133, -127, -124, -120, -92, -140, -25, 128, 377, -88, -96, 341, 338, 337, 327, 322, 318, 314, 85, -115, 380, 131, 198, -143, -97, -111, -100, -153, -180, -219, -186, -195, -241, -234, -233, --222, -196, -177, -171, -142, -113, -94, 220, 6, -16, 20, 32, -55, -57, -71, 8, -71, -76, -2, -58, 37, 98, -60, -9, -121, --122, -98, -80, -164, -234, -325, -256, -274, -360, -347, -336, -312, -263, -226, -215, -151, -128, 18, 108, 86, 44, 17, 56, -28, 45, --26, 101, 9, 43, 50, 7, 19, 195, 6, 72, -67, -49, -77, -79, -200, -286, -431, -325, -356, -496, -497, -511, -473, -396, -329, --294, -197, -110, 35, 215, 117, 148, 70, 53, 24, -20, 45, 145, 66, 33, 89, -41, 27, 308, 76, -136, -268, -323, -174, 74, --173, -296, -349, -289, -266, -346, -199, -124, -44, -78, -104, -167, -162, -168, 0, 213, 111, 97, 92, 92, 47, 48, 26, -29, -12, -65, 152, 161, 77, -109, -167, -9, 290, -72, -246, -190, -386, -276, 112, -11, -13, 84, 72, 11, -82, -215, -318, -422, -255, -170, -24, 63, 38, 66, 22, 12, 34, -3, -15, 3, 29, 6, -54, -34, -95, -43, -207, -13, -106, -118, -192, -539, -502, -577, -589, --441, -324, -268, -502, -566, -457, -372, -206, -31, 34, 13, 88, -8, -34, 80, 46, 24, 13, 22, -7, -17, -68, -79, -65, -137, --177, -146, -50, -271, 37, -179, -458, -956, -849, -645, -321, -203, -157, -115, -203, -212, -112, -164, -199, -238, -162, -87, 11, 84, 15, -3, 13, 27, 38, -4, -15, 11, -5, -44, -56, -56, -205, -294, -383, -229, -875, -1272, -1087, -792, -657, -557, -455, -340, -307, -364, --291, -282, -254, -174, -103, -75, 44, 39, -2, -21, -55, 61, 17, -4, -11, 35, 21, -42, -123, -141, -140, -164, -113, 37, -246, -612, 240, -63, -206, -451, -525, -539, -560, -306, -178, -157, -140, -147, -156, -171, -165, -174, -152, -108, -12, -35, -44, -10, 7, 50, -60, 83, 124, 138, 235, 284, 298, 296, 274, 360, 293, 228, 179, 50, 2, -90, -201, -337, -497, -484, -491, -483, -424, -362, -296, --291, -280, -274, -245, -245, -198, -85, -23, 29, 58, 110, 127, 188, 157, 231, 219, 277, 281, 299, 326, 375, 287, 303, 72, 44, -0, -37, -77, -100, -133, -108, -96, -89, -81, -81, -80, -69, -54, -42, -30, -6, -26, 37, -46, -57, -2, 6, -41, -23, 3, -76, 63, 87, 162, 141, 181, 150, 89, 64, -39, -8, -29, -39, -50, -63, -83, -76, -74, -70, -68, -66, -64, -56, -50, -42, --40, -29, -39, 19, 127, 323, -15, 127, 348, 355, 352, 339, 352, 354, 356, 179, 21, 372, 193, -41, 214, 57, 265, 178, 196, -176, 214, 224, 216, 224, 217, 194, 192, 190, 192, 209, 216, 216, 218, 199, 275, 62, -95, -272, 111, -90, -262, -264, -258, -218, --255, -257, -238, -84, 140, -231, -115, -127, 250, 201, 171, 134, 220, 253, 238, 276, 259, 196, 184, 183, 197, 251, 271, 273, 258, -267, 255, -83, 148, 102, 74, 43, 107, 132, 143, 93, 154, 164, 102, 101, 37, 120, 213, 65, 186, 223, 176, 116, 268, 315, -295, 354, 313, 203, 162, 153, 172, 270, 311, 317, 291, 335, 223, 112, 138, 95, 110, 27, 88, 12, 149, 80, 107, 27, 104, -30, 56, 166, 141, 116, 251, 216, 77, -34, 178, 294, 279, 393, 364, 185, 117, 95, 159, 332, 406, 415, 367, 387, 302, 132, -262, 89, 153, 124, 80, 31, 42, 188, 81, 79, 101, 8, 79, 341, 277, -218, 159, 342, 473, 683, 528, 432, 425, 478, 419, -230, 362, 316, 142, 130, 133, 261, 238, 340, 271, 99, 244, 151, 150, 111, 47, 67, 41, -22, 17, 103, 183, 205, 51, -160, --212, 52, 541, 177, -98, -186, -216, -112, 145, 103, 112, 187, 95, 50, 99, 149, 216, 309, 237, 241, 131, 20, 66, 93, 116, -89, 59, 15, 4, 34, 69, 27, -2, -60, 0, 53, 38, -80, -14, -25, 100, 368, 529, 612, 641, 545, 409, 325, 329, 375, -420, 356, 242, 94, 132, 215, 218, 100, 82, 81, 97, 55, 18, 58, 38, 1, -46, -55, -39, -156, -143, -174, -56, -197, 60, -263, 297, 473, 268, 133, 53, -51, -68, 15, -38, -26, 70, 156, 212, 219, 236, 205, 88, 13, 80, 73, 59, 59, 60, 15, --1, 39, 29, -1, 50, -38, -96, -235, -253, -605, -627, -225, -122, 109, 141, 194, 224, 194, 168, 108, 114, 80, 29, -23, -32, -2, 42, 109, 121, -4, 55, 73, 28, 31, 41, 50, 47, -46, -96, -146, -149, -235, -216, -149, -239, 117, 212, 148, -32, -124, --100, -26, 75, 6, -46, -114, -39, -2, 14, 27, 54, 58, 65, 37, -34, -28, 4, 18, 70, 88, 68, 102, 131, 177, 244, -283, 305, 276, 277, 267, 275, 271, 299, 238, 149, 66, -25, -127, -221, -218, -210, -223, -223, -229, -236, -219, -210, -193, -157, -83, --79, -97, -26, 31, 76, 96, 162, 152, 212, 181, 232, 230, 283, 291, 307, 309, 309, 29, 124, 117, 109, 112, 113, 123, 119, -90, 51, 20, -16, -50, -93, -61, -36, -12, 6, 19, 56, -13, 44, 37, 19, 9, 37, 72, 89, 82, 144, 164, 168, 159, -120, 117, 138, 51, 107, 85, 89, 85, 81, 76, 78, 64, 56, 45, 33, 23, 4, 19, 26, 34, 46, 48, 77, 31, -38, --104, 51, -37, -124, -112, -95, -69, -69, -55, -33, 1, 81, -49, -16, 76, -37, 149, -106, -24, -32, -23, -27, -35, -55, -46, --51, -68, -63, -62, -60, -52, -48, -46, -41, -22, -81, 160, 273, 316, 92, 252, 303, 319, 322, 296, 325, 328, 321, 245, 62, -331, 290, 318, -30, -35, -15, -11, -7, -17, -71, -49, -70, -122, -120, -124, -118, -92, -70, -63, -28, -34, 29, 292, 75, 100, -85, 104, 49, 36, 57, 129, 44, 1, 67, 25, 116, 193, 41, 176, -5, -57, 24, 15, 31, -5, -117, -66, -104, -190, -182, --181, -161, -128, -89, -85, -28, -48, 122, 212, 147, 91, 66, 119, 21, 109, 0, 155, 32, 111, 88, 59, 74, 244, 115, 251, -36, -12, 26, 7, 61, 59, -118, -54, -120, -282, -287, -311, -273, -192, -125, -96, -10, -6, 166, 285, 104, 152, 66, 53, 13, --1, 60, 124, 82, 33, 65, -40, 75, 306, 186, 82, -79, -166, 50, 281, 26, -115, -192, -132, -171, -367, -146, -90, -136, -95, --90, -185, -133, -143, 125, 261, 69, 124, 114, 130, 59, 51, 24, -39, 19, 117, 216, 193, 109, -103, -35, 154, 193, -243, -268, --210, -144, -4, 211, 74, 28, 74, 119, 98, 51, -46, -103, -157, -21, -36, 98, 146, 108, 126, 39, 7, 41, 10, 9, 43, -46, 17, -49, -63, -79, 75, -64, -2, -57, -101, -78, -132, -84, -128, -99, -207, -220, -171, -338, -339, -230, -184, -77, 11, 90, -11, 65, 70, 6, 99, 93, 49, 15, 39, 11, -14, -54, -51, -5, -102, -134, -45, -48, -75, 53, 0, -29, -252, -236, -227, --230, -82, -6, 83, 21, 0, 35, 33, 1, -57, -5, -6, 29, 147, 98, 71, 72, 58, 52, 2, 9, 41, 31, -5, 14, --43, -147, -163, -209, -255, -499, -523, -421, -396, -338, -309, -256, -112, -61, -108, -23, -26, -79, -47, -17, -9, 68, 63, 44, 84, -14, 57, 28, 23, 35, 49, 1, -43, -129, -138, -114, -224, -211, -94, -236, 326, 41, -262, -292, -354, -324, -283, -228, -159, -137, --166, -135, -112, -101, -80, -71, -55, -55, -49, -10, -10, 12, 103, 72, 65, 57, 68, 107, 87, 150, 188, 207, 210, 182, 183, -143, 267, 154, -10, -62, -193, -261, -355, -459, -398, -351, -305, -299, -291, -278, -267, -253, -243, -201, -185, -113, -34, -10, 14, 47, -114, 133, 189, 147, 234, 196, 256, 250, 280, 334, 397, 291, 187, 11, -27, -52, -85, -115, -141, -176, -173, -185, -186, -183, -172, --160, -136, -114, -98, -77, -63, -52, 57, -28, -11, 8, 23, -12, -15, 17, 75, 39, 33, 91, 64, 89, 78, 12, 37, -107, --80, -99, -110, -123, -137, -154, -150, -148, -147, -146, -148, -152, -143, -135, -125, -118, -104, -126, 7, 98, 172, -16, 111, 185, 195, -192, 175, 198, 202, 201, 126, 0, 188, 135, -129, 83, -94, 130, 75, 77, 66, 67, 67, 68, 73, 71, 61, 60, 58, 57, -73, 80, 81, 83, 81, 136, -88, -144, -75, -62, -154, -87, -99, -100, -73, -114, -120, -113, -152, -46, -59, -163, -109, 77, 104, -58, 41, 27, 29, 41, 63, 61, 27, 27, 29, 31, 73, 86, 89, 84, 123, 96, -61, 56, -8, 6, -15, -2, 37, 19, --25, 35, 63, 15, 8, -20, 20, 79, -36, 69, 146, 77, 55, 10, -12, 24, 48, 39, -8, -25, -32, -42, 46, 84, 94, -99, 163, 117, 21, 56, 39, 32, -22, 21, 2, 107, 11, 90, 6, 43, -13, -4, 75, 32, 44, 120, 166, 28, -20, -108, --107, -48, 3, 14, -71, -104, -130, -114, 17, 71, 90, 101, 207, 206, 108, 203, 60, 100, 99, 65, 38, 63, 181, 88, 82, -79, -5, 37, 263, 173, -291, -27, 184, 273, 473, 197, 48, 21, 149, 170, 37, 311, 330, 165, 109, 89, 216, 116, 130, 50, --20, 123, 92, 116, 103, 57, 56, 26, -31, 24, 129, 179, 155, -25, -255, -306, 6, 185, 30, -184, -232, -262, -187, -25, 17, -50, 36, 80, 56, -5, 20, 17, -7, 24, 99, 45, 53, 86, 71, 95, 59, 51, 26, 26, 59, 64, 11, -32, -84, -11, -35, 63, -64, -49, -92, -106, -180, -117, -41, 119, 255, 254, 152, 79, 41, 34, 89, 107, 73, 139, 193, 52, 2, 40, 28, -66, 36, 17, 50, 35, 0, -41, -42, -8, -157, -108, -113, -56, -95, -98, -74, -151, -197, -162, -165, -121, -206, -213, -157, -94, --59, -33, 54, 75, 77, 109, 137, 53, 42, 94, 88, 77, 58, 51, 25, 6, 45, 45, 24, 89, -50, -103, -128, -102, -539, --596, -387, -385, -350, -357, -297, -191, -67, -36, -175, -108, -96, -115, -67, -25, 49, 62, 87, 49, -7, 40, 65, 35, 40, 48, -29, 2, -92, -129, -175, -179, -273, -291, -252, -407, -137, -251, -295, -298, -184, -82, 18, 89, -6, -59, -79, -67, -82, -111, -80, --44, 51, 60, 56, -5, -21, 2, 16, 40, 67, 73, 86, 93, 98, 104, 120, 134, 142, 91, 8, -61, 88, 90, 33, -73, --177, -244, -307, -357, -305, -256, -220, -216, -204, -205, -180, -168, -147, -124, -58, -65, -100, -37, 5, 42, 71, 119, 128, 166, 145, -182, 169, 191, 178, 182, 181, 140, -25, -12, -21, -43, -51, -61, -72, -104, -102, -115, -118, -123, -130, -145, -121, -98, -76, -61, --43, -24, -58, -27, -51, -41, -57, -51, -25, -32, -36, 9, 36, 38, 30, 6, -5, 7, -124, -31, -50, -58, -65, -79, -88, --95, -93, -93, -95, -97, -98, -103, -93, -88, -82, -74, -70, -45, -130, -164, -112, -118, -165, -117, -118, -110, -95, -106, -102, -90, --137, -100, -78, -145, -87, 105, 231, 69, 97, 104, 98, 120, 121, 105, 109, 103, 85, 89, 90, 92, 98, 101, 100, 104, 102, -85, 234, 217, 45, 209, 213, 53, 77, 83, 71, 100, 104, 101, 213, 200, 69, 226, 203, 139, 93, 121, 105, 168, 184, 144, -154, 130, 81, 77, 74, 85, 107, 125, 127, 146, 122, 178, 183, 138, 176, 116, 118, 131, 131, 172, 188, 158, 111, 113, 104, -126, 198, 153, 227, 127, 89, 160, 110, 237, 261, 172, 201, 154, 73, 75, 69, 90, 121, 151, 144, 165, 137, 205, 224, 168, -132, 105, 115, 69, 117, 80, 153, 82, 125, 99, 78, 94, 204, 169, 255, 134, 76, 123, 64, 270, 358, 245, 272, 210, 50, -28, 15, 61, 147, 197, 203, 234, 189, 273, 255, 137, 141, 89, 68, 14, 32, 70, 115, 101, 55, 40, -12, 92, 237, 230, -164, 191, 193, 343, 490, 318, 230, 209, 133, 59, -79, 139, 148, -33, 24, 35, -8, 51, 62, 194, 190, 89, 133, 128, 143, -73, 50, 23, -35, 65, 170, 226, 170, 74, -121, 28, 248, 28, -260, -196, -196, -15, 74, 50, 104, 81, -19, 135, 158, 113, -104, 139, 194, 245, 173, 136, 144, 131, 148, 87, 45, 53, 23, 32, 77, 62, 17, -52, -29, 38, 109, 168, -13, -13, -28, -76, 306, 417, 476, 497, 283, 136, 79, 117, 146, 154, 167, 140, 55, 138, 94, 95, 109, 50, 89, 113, 56, 27, 44, 27, -7, -28, -13, 41, -87, -81, 22, -35, -9, -28, 207, 401, 477, 420, 250, -83, 9, 43, 84, 149, 149, 82, 183, 206, 168, -176, 113, 81, 138, 129, 110, 101, 75, 64, 16, 29, 54, 47, 19, 60, -41, -72, -73, -52, -229, 0, 222, 205, 76, 90, -74, 46, 168, 208, 203, 169, 135, 115, 51, 32, 53, 101, 99, 76, 123, 87, 73, 50, 47, 67, 32, -22, -50, -98, -105, --95, -180, -206, -213, -165, -95, -110, -215, -168, -78, 0, 58, 146, -49, -135, -118, -70, -17, 15, 55, 72, 79, 78, 49, 0, --3, 23, 114, 88, 75, 88, 98, 97, 30, 45, 63, 73, 114, 102, 15, -8, 172, 67, -34, -74, -167, -177, -202, -211, -157, --107, -82, -121, -154, -189, -168, -150, -134, -89, -57, 9, 35, 24, 27, 44, 81, 93, 131, 134, 207, 164, 185, 175, 179, 210, -234, 171, 33, 19, -14, -19, -36, -50, -70, -99, -127, -163, -183, -196, -200, -205, -183, -167, -153, -138, -139, -111, -26, -38, 6, -4, 35, 50, 43, 63, 79, 60, 45, 61, 47, 36, 44, 13, 26, -59, -59, -67, -75, -86, -94, -98, -106, -110, -117, -123, --131, -143, -134, -127, -120, -112, -101, -116, -7, 13, -49, 9, 40, -39, -30, -28, -35, -15, -10, -6, 43, 25, -41, 34, -95, --54, -106, -56, -35, -48, -47, -70, -79, -78, -76, -75, -76, -74, -74, -75, -66, -62, -61, -58, -42, -49, -97, -21, 202, -120, --43, 171, 165, 162, 159, 144, 138, 129, -47, -128, 192, -26, 53, -84, -19, -49, -51, -119, -143, -133, -126, -119, -127, -121, -118, --121, -102, -98, -98, -83, -45, -56, 77, -6, -38, -13, -12, -59, -27, -48, -47, -43, -31, -32, -50, -13, -1, -39, -44, -53, -9, -20, -25, -155, -220, -206, -200, -190, -188, -184, -185, -199, -156, -132, -132, -87, -50, 15, 17, 24, 28, -14, -6, -30, 40, -44, 16, 57, 29, 2, -14, -16, 50, -28, 37, -23, 50, -11, -31, -238, -321, -293, -278, -243, -255, -270, -291, -304, -246, -224, --216, -136, -24, 73, 134, 108, 86, 43, 52, 15, 35, 85, 135, 93, 63, 38, -19, 10, 167, 67, -161, -138, -37, 25, 176, --90, -217, -258, -228, -181, -191, 94, 167, 75, 36, 16, 35, -49, -110, -109, -8, 17, 53, 83, 104, 82, 39, 9, -31, 57, -162, 155, 91, -38, -218, -223, 63, -223, -157, -206, -208, -260, -259, -258, -52, 11, -81, 70, 73, -20, -96, -184, -277, -129, -39, --18, 82, 85, 66, 74, 36, 45, 23, 38, 84, 53, -3, -67, -24, 5, -28, 111, -39, -86, -116, -219, -488, -526, -488, -338, --114, -26, -83, -187, -294, -331, -195, -60, 21, 98, 92, -47, -53, -21, 1, 36, 15, 27, 30, 17, 4, -32, -18, 14, -127, --53, 6, -40, -22, -118, -250, -401, -632, -466, -359, -239, -242, -242, -255, -146, -92, -88, -71, -81, -70, -41, 9, 16, 87, 75, -70, 76, 50, 43, 22, 8, 37, 36, 14, 47, -42, -89, -59, -12, -242, -368, -529, -551, -593, -596, -549, -429, -262, -212, -307, --221, -176, -150, -72, -7, 45, 81, 56, -26, 23, 22, 56, 40, 34, 48, 0, -46, -101, -126, -143, -160, -201, -242, -264, -384, --203, -442, -491, -383, -243, -117, -71, -125, -146, -128, -44, -97, -123, -125, -110, -74, -16, 23, 46, 29, 4, -2, 6, 5, 36, -68, 76, 60, -1, -26, -32, -42, 25, -31, -122, -260, -68, -117, -162, -214, -282, -309, -325, -334, -286, -260, -226, -209, -177, -155, --136, -120, -104, -100, -87, -79, -56, -22, 1, 19, 50, 61, 98, 92, 132, 111, 106, 77, 52, 47, 55, -19, 26, -81, -101, --136, -161, -191, -225, -273, -254, -240, -227, -211, -204, -203, -188, -173, -156, -142, -118, -124, -103, -111, -122, -80, -77, -89, -80, -88, --65, -63, -38, -15, -25, -18, -37, -60, -166, -142, -142, -160, -171, -186, -197, -213, -201, -197, -193, -191, -185, -180, -173, -168, -163, --159, -151, -142, -182, -145, -13, -184, -139, 12, 6, 5, 0, -4, -8, -7, -115, -168, 11, -112, -197, 186, 151, 203, 164, 178, -158, 192, 199, 195, 193, 188, 181, 179, 178, 180, 186, 187, 185, 186, 169, 204, 150, 34, -182, 177, 41, -169, -153, -147, -136, --135, -134, -132, 48, 192, -162, 26, -4, 220, 173, 176, 139, 219, 247, 243, 246, 237, 216, 201, 200, 209, 232, 240, 233, 227, -210, 222, 4, 139, 151, 89, 72, 130, 157, 188, 139, 179, 158, 97, 116, 70, 115, 185, 137, 180, 203, 203, 120, 271, 324, -311, 312, 283, 258, 229, 222, 232, 268, 283, 268, 251, 246, 185, 133, 125, 123, 97, 55, 79, 84, 149, 92, 113, 80, 72, -54, 66, 101, 135, 154, 186, 160, 131, 21, 242, 351, 368, 379, 376, 308, 242, 234, 264, 352, 371, 346, 319, 285, 251, 144, -166, 105, 99, 77, 16, 65, 85, 116, 103, 70, 20, 12, 68, 159, 209, 24, 271, 421, 485, 538, 454, 417, 442, 281, 201, -157, 330, 319, 107, 135, 152, 205, 208, 227, 160, 49, 111, 119, 125, 129, 95, 45, 16, -17, 109, 200, 173, 116, 8, -141, --63, 245, -113, -96, -81, -157, -34, -52, -215, 87, 145, -23, 83, 119, 167, 202, 260, 343, 324, 278, 108, 76, 103, 115, 139, -95, 61, 29, 48, 108, 71, 13, -41, 17, 110, 51, 339, -58, -9, 1, 130, 479, 537, 656, 700, 546, 379, 262, 401, 420, -373, 322, 228, 77, 129, 151, 96, 80, 52, 36, 81, 39, 41, 48, 35, 24, -7, 17, 51, -62, 5, 41, -31, 16, -18, -252, 444, 737, 601, 397, 68, 12, -13, -35, 83, 133, 115, 189, 239, 262, 242, 174, 87, 66, 99, 94, 99, 72, 56, 24, -24, 47, 38, 17, 52, -19, 5, -30, 45, -255, 113, 423, 379, 307, 268, 256, 236, 224, 210, 220, 201, 190, 166, 114, 90, -95, 87, 93, 73, 89, 111, 62, 51, 51, 80, 5, -34, -59, -63, -79, -103, -144, -197, -305, -165, -391, -206, -117, -74, 44, -150, 184, 182, 4, -64, -35, -9, 37, 81, 105, 136, 127, 152, 119, 19, 24, 34, 49, 61, 60, 79, 90, 62, -5, -31, --40, -43, 10, 13, -90, -136, 7, -30, -32, -47, -62, -43, -16, 33, 36, 36, 20, -13, -44, -81, -58, -41, -24, -13, 12, -22, 7, 7, 17, 33, 40, 63, 65, 104, 126, 102, 74, 60, 39, 33, 15, 8, -83, 14, -2, -2, -7, -10, -22, -35, --68, -96, -119, -140, -161, -189, -169, -156, -140, -125, -119, -87, -106, -39, -7, -19, 0, 48, 53, 59, 41, 62, 63, 52, 47, -10, 18, 25, -30, -11, -33, -31, -35, -39, -41, -39, -49, -56, -66, -75, -83, -96, -86, -80, -76, -67, -64, -51, -49, -102, --218, -13, -81, -214, -209, -198, -188, -181, -175, -163, -72, 1, -196, -93, -55, -85, 13, -134, -60, -76, -71, -91, -100, -104, -104, --103, -97, -96, -95, -94, -94, -94, -94, -92, -72, -126, 21, 149, 318, -32, 128, 291, 303, 301, 274, 291, 290, 272, 121, -57, -300, 157, 208, -113, -69, -65, -65, -112, -135, -139, -143, -137, -125, -129, -129, -131, -131, -129, -131, -111, -103, -82, 196, 3, 21, -22, 38, -23, -6, -6, 27, -23, -44, -11, -29, 42, 52, -53, 41, -71, -60, -31, -50, -130, -179, -203, -210, -202, -166, -168, --162, -163, -166, -159, -169, -125, -138, -12, 76, 48, 59, 1, 51, -22, 103, 22, 70, 38, 72, 9, 19, 12, 70, -6, 91, --74, -47, -15, -38, -149, -214, -238, -247, -216, -184, -212, -226, -242, -237, -235, -240, -168, -134, 1, 161, 39, 128, 19, 15, -28, -43, 103, 80, 86, 34, -1, -23, 14, 98, 30, 11, -101, -92, -33, 33, -134, -205, -237, -345, -355, -339, -129, -22, -23, -28, --34, -100, -110, -186, -97, 64, -32, 56, 69, 109, 110, 27, -3, -13, 107, 186, 127, 57, -13, -146, -105, 192, -424, -287, -190, --145, -152, -191, -293, -17, 51, -102, 54, 82, 43, -58, -147, -246, -91, -55, 0, 102, 81, 75, 80, 41, 44, 26, 51, 106, -46, 0, -70, 27, 29, -25, 199, -42, -105, -77, -127, -294, -415, -424, -338, -247, -174, -186, -258, -344, -360, -291, -145, -10, 39, --23, -70, -39, -55, -7, 19, 6, 37, 25, 6, 13, -14, 15, 45, -14, 26, 75, -49, 55, 9, -169, -270, -437, -347, -275, --210, -156, -138, -194, -83, -30, -27, -67, -98, -104, -81, -54, -1, 100, 47, 37, 71, 48, 32, 13, 9, 28, 15, -9, -24, --22, -46, -11, 35, -30, -150, -384, -369, -423, -429, -405, -330, -257, -233, -254, -152, -99, -89, 2, 61, 73, 75, 25, -28, 71, -26, 28, 36, 27, 48, -12, -64, -66, -86, -83, -111, -141, -193, -247, -259, -146, -350, -416, -314, -260, -193, -220, -335, -193, -98, --33, -86, -100, -78, -69, -50, -32, -3, 23, 47, 42, 25, 27, 6, 16, 48, 33, 13, -63, -96, -113, -125, -59, -86, -118, --253, -117, -205, -241, -224, -238, -219, -188, -168, -158, -171, -159, -136, -107, -82, -66, -48, -36, -55, -93, -89, -28, -21, -12, 2, -37, 35, 75, 36, 110, 43, 48, -11, -28, -34, -19, -98, 62, -93, -120, -152, -187, -223, -264, -300, -277, -247, -228, -205, -189, --174, -166, -158, -145, -132, -108, -115, -66, -99, -91, -55, -40, -54, -62, -59, -24, -54, -47, -8, -26, -4, -20, -70, -110, -169, --155, -173, -181, -191, -200, -219, -204, -200, -194, -189, -182, -173, -170, -165, -162, -160, -152, -158, -124, -54, 44, -132, -43, 74, 74, -70, 54, 64, 60, 55, -33, -128, 53, -29, -200, 140, -6, 184, 124, 132, 111, 129, 136, 144, 139, 139, 143, 136, 135, 136, -142, 143, 141, 138, 123, 176, -7, -111, -183, 36, -106, -183, -180, -178, -159, -183, -188, -186, -100, 58, -180, -130, -134, 138, 137, -113, 77, 110, 128, 159, 159, 167, 176, 157, 158, 162, 179, 178, 172, 148, 156, 128, -97, 76, 55, 29, 8, 55, 101, 104, -32, 98, 109, 35, 58, -1, 8, 106, -7, 113, 187, 123, 54, 106, 139, 202, 185, 186, 216, 170, 168, 166, 203, 205, 196, -161, 183, 80, 10, 48, 74, 47, -6, 49, 51, 157, 23, 104, 23, 30, 12, 11, 0, 36, -3, 104, 136, 52, -47, 9, -67, 195, 197, 248, 284, 199, 185, 189, 253, 253, 229, 173, 188, 115, 30, 146, 81, 84, 65, 17, 86, 102, 108, 85, 67, -12, 23, 28, 88, 104, -155, 174, 392, 369, 375, 323, 296, 318, 186, 134, 129, 274, 314, 218, 174, 165, 272, 209, 218, 44, --73, 82, 78, 94, 96, 115, 37, 6, 13, 137, 196, 93, 58, -66, -204, -209, 161, -253, -2, -35, -104, -114, -169, -282, 60, -159, -23, 46, 68, 113, 162, 198, 241, 196, 211, 54, 26, 63, 55, 153, 115, 61, 45, 67, 118, 65, 12, -18, 33, 120, --3, 363, -118, -66, 25, 95, 274, 221, 309, 388, 436, 387, 245, 361, 326, 229, 192, 136, 71, 75, 122, 26, -4, 8, -37, -19, 12, 43, 46, 35, 33, 12, 34, 40, -5, 58, -7, -70, 47, 40, 113, 149, 395, 273, 161, 63, -75, -125, -193, -51, -26, 45, 89, 135, 177, 159, 140, 54, -5, 42, 46, 73, 56, 36, 28, 13, 31, 16, 3, 9, -12, 29, -4, 83, -285, --97, 143, 128, 131, 80, 100, 141, 54, 21, 14, 28, 46, 55, 70, 79, 114, 46, 52, 53, 29, 75, 22, 37, 41, 59, --14, -37, -56, -40, -71, -123, -165, -231, -343, -237, -420, -263, -117, -107, -19, 20, 22, -4, -1, 8, 2, 5, 12, 28, 56, -84, 122, 124, 110, 39, 46, 46, -6, 23, 32, 53, 29, -6, -32, -83, -106, -110, -75, -70, -117, -200, -160, -154, -96, -92, --54, -19, 39, 99, 68, 39, 15, 17, 17, 10, 33, 49, 71, 41, 47, -11, -56, -30, -10, 15, 14, 52, 28, 66, 38, -34, -16, -34, -73, -113, -158, -148, -121, -32, -33, -41, -45, -49, -60, -65, -68, -62, -64, -70, -82, -102, -91, -83, -69, -60, --45, -23, -99, -17, -19, -27, -30, 14, 24, 12, -19, 20, 35, 18, 13, -21, -21, 0, -101, -3, -30, -26, -27, -28, -27, --28, -28, -31, -35, -37, -38, -40, -35, -34, -34, -29, -32, -4, -94, -166, -233, -60, -159, -233, -232, -221, -203, -210, -207, -198, --152, -59, -211, -171, -30, -6, 140, -59, 2, -4, -6, -3, -5, -10, -12, -13, -8, -11, -10, -6, -9, -10, -11, -12, -5, --53, 142, 209, 195, 102, 203, 189, 213, 215, 186, 218, 219, 206, 199, 83, 188, 221, 208, -15, -19, 7, -7, 9, 9, 0, --8, -9, 2, -16, -21, -15, -19, -14, -16, -7, -28, 10, 187, 54, 101, 67, 82, 60, 68, 92, 115, 61, 21, 46, 40, -89, 106, 21, 124, 7, -21, 28, -21, 25, 30, -3, -15, -24, 8, -19, -12, 7, -8, -10, -20, -12, -56, 34, 122, 84, -92, 46, 92, 31, 138, 58, 116, 49, 100, 43, 60, 55, 93, 58, 109, -28, -52, 16, -44, 32, 55, 30, 17, 23, 52, --13, -32, -22, -22, -14, -24, -14, -65, 18, 138, 30, 149, 37, 12, -30, 66, 112, 42, 75, 25, -10, 0, 42, 67, 49, -159, 101, 45, 78, 96, 81, 70, 39, -157, -245, -269, -161, -54, 22, 16, 8, -71, -24, -56, 35, 109, -9, 72, 66, 104, -126, 27, -1, 25, 154, 193, 92, 56, 14, -112, 8, 241, -422, -261, -92, -77, -31, -38, -115, 85, 121, -49, 67, 98, 107, -61, 40, 38, 88, 43, 67, 103, 74, 79, 100, 71, 51, 46, 72, 115, 41, 12, -22, 64, 76, 12, 263, -69, -95, 37, -88, 155, 53, 28, 12, -35, -36, -73, -43, -84, -130, -129, -71, 18, 16, -57, -28, 9, -43, -13, 11, 10, 45, 32, 14, -27, 18, 41, 44, 64, 64, 62, -72, 113, 126, 74, 116, 127, 83, 27, -80, -9, 4, -61, 14, 50, 48, 20, 21, 28, -21, -3, 25, 75, 33, 23, 62, 49, 29, 15, 21, 24, 4, -16, -54, -10, -2, 10, 57, -5, 21, -9, 26, -38, -30, --37, -34, -83, -80, -5, 7, 16, 33, 61, 71, 66, 37, 5, 22, 90, 36, 4, 30, 24, 37, -11, -51, -18, -35, -38, --77, -138, -194, -250, -134, -104, -145, -191, -158, -170, -218, -258, -256, -141, -78, -76, -58, -29, 0, 32, 37, 48, 23, 22, 52, -61, 55, 58, 34, 16, 35, -16, -40, -92, -118, -132, -135, -92, -71, -48, -127, -132, -221, -232, -177, -147, -89, -33, 5, -7, --20, -23, -14, -10, -1, 15, 34, 52, 29, -11, -13, 18, 1, -8, 6, 35, 41, 56, 18, 73, 2, 5, -46, -66, -84, --89, -140, 21, -68, -87, -97, -121, -141, -165, -174, -163, -148, -136, -124, -110, -93, -93, -93, -90, -84, -77, -73, -14, -34, -5, -4, 29, 34, 12, 18, 33, -3, -17, 6, -12, 0, -2, -47, -12, -95, -81, -88, -90, -92, -94, -103, -97, -95, -92, -89, --87, -82, -82, -81, -82, -80, -77, -92, -15, 28, 16, -9, 47, 38, 42, 40, 26, 41, 38, 31, 33, -21, 7, 29, -82, -16, -106, 45, 18, 12, 2, -5, -5, 7, 4, 7, 19, 9, 8, 9, 14, 15, 16, 13, 13, 38, -104, -113, 3, -88, --116, -11, -15, -17, -10, -36, -43, -46, -115, -77, -9, -126, -99, -14, 27, -6, -27, -58, -60, -19, -19, -3, 24, -1, -4, --1, 9, 9, 8, -8, 16, -19, -59, -2, -34, -18, -25, -23, 19, 0, -45, -8, 15, -22, -13, -31, -47, -12, -85, -1, -67, -9, -47, -106, -119, -37, -55, -33, 32, -28, -28, -31, -1, 2, 5, -12, 17, -25, -53, -12, 16, -7, -22, 12, 49, -110, -2, 71, 5, -1, -4, -16, -36, -42, -89, -14, 50, -35, -104, -225, -245, -96, -95, -30, 74, -30, -66, -76, -43, -33, --35, -59, -4, -29, -18, 78, 71, 50, 40, 18, 90, 115, 83, 64, 55, 14, 24, 2, 44, -4, -151, 30, 129, 72, 107, -82, 49, -1, -62, -84, -71, 32, 139, 251, 147, 111, 173, 90, 71, -54, -82, 26, 31, 48, 63, 120, 30, 4, 53, 154, -173, 32, 27, -74, -207, -204, 12, -371, 22, -1, -75, -177, -213, -213, 34, 123, -12, 26, 34, 44, 52, 26, -4, -16, 38, -0, 16, 31, 12, 119, 102, 55, 64, 85, 112, 36, 9, 21, 50, 78, -47, 211, -108, -101, 45, 22, -94, -220, -221, -160, -73, 168, 83, 78, -10, -95, -89, -39, 67, 19, 33, -60, -77, -44, -74, -39, -7, 48, 37, 27, 31, 26, 35, 3, 28, -78, -20, -69, 68, 64, -61, -178, -207, -191, -146, -30, -123, -163, -230, -152, -92, -41, -63, -43, 23, 18, 54, 21, -18, -2, -8, 39, 32, 19, 30, 12, 16, 6, -2, -24, -15, -1, -13, 65, -233, -279, -282, -263, -202, -223, -194, -127, -205, -209, -199, --161, -121, -89, -4, 34, 59, -1, -6, 4, -21, 7, -1, 22, 19, 14, -23, -33, -44, -38, -78, -141, -200, -264, -314, -294, --249, -270, -198, -200, -174, -204, -199, -177, -91, -40, -29, -36, -47, -54, -25, 0, 67, 44, 51, 55, 51, 41, -22, 0, 7, -19, -40, -77, -77, -121, -143, -151, -123, -115, -94, -198, -269, -256, -197, -187, -143, -105, -56, -18, -35, -47, -51, -15, 18, 46, -65, 78, 101, 62, 56, -3, -45, -22, -15, 5, 12, 43, 23, 21, -11, -17, -52, -76, -126, -184, -232, -242, -88, -94, -86, --98, -103, -110, -117, -119, -95, -68, -49, -36, -31, -29, -32, -34, -30, -29, -16, -18, -67, -25, -41, -27, -34, -19, -19, -41, --58, -39, -24, -31, -37, -47, -59, -53, -119, -38, -47, -47, -45, -46, -45, -49, -40, -37, -32, -28, -22, -14, -15, -16, -18, --19, -23, -4, -96, -122, -86, -81, -121, -74, -81, -78, -71, -85, -90, -91, -125, -96, -85, -134, -28, 97, 164, 85, 84, 89, -76, 100, 106, 106, 103, 101, 104, 93, 92, 96, 97, 98, 98, 95, 86, 82, 160, 118, -42, 159, 128, -26, -4, 1, -10, -9, 10, 7, 131, 163, -33, 123, 73, 117, 71, 88, 59, 119, 143, 147, 144, 138, 145, 104, 94, 105, 114, 126, 129, 123, -94, 116, 65, 88, 121, 76, 80, 114, 126, 156, 138, 127, 96, 80, 94, 86, 104, 103, 136, 115, 79, 91, 22, 148, 198, -199, 191, 173, 192, 121, 115, 141, 151, 158, 158, 133, 98, 89, 107, 87, 81, 70, 83, 83, 126, 120, 114, 79, 90, 65, -76, 74, 76, 101, 83, 79, 30, 50, -49, 125, 225, 264, 265, 255, 274, 148, 108, 139, 177, 213, 214, 171, 92, 74, 69, -54, 107, 64, 36, 10, 95, 116, 44, 67, 41, 5, 33, 64, 57, 87, 191, 267, 207, 207, 222, 333, 358, 294, 132, 6, --50, -43, 32, 152, 120, 109, 86, 129, 147, 155, 96, 57, 78, 64, 83, 120, 32, 16, 76, 182, 179, 66, 62, 17, -90, -73, 101, -285, -69, 51, -55, 30, 42, -31, 138, 169, 29, 51, 82, 158, 190, 243, 309, 232, 150, 100, 59, 53, 69, 116, -104, 57, 73, 95, 113, 31, 24, 48, 77, 104, 57, 198, -49, -21, 128, 240, 462, 417, 401, 338, 232, 174, 151, 233, 245, -205, 107, 54, 77, 21, -17, 22, 33, -7, -10, 0, 18, 57, 42, 30, 36, 39, 47, 22, 89, 93, 46, -31, 95, 136, -263, 405, 557, 452, 326, 107, 98, 81, 48, 60, 71, 73, 89, 126, 167, 144, 94, 62, 27, 20, 26, 44, 40, 30, 30, -35, 22, 15, 4, -36, -13, 13, -16, 46, -116, 105, 267, 297, 307, 296, 254, 182, 62, 55, 168, 123, 121, 120, 96, 68, -42, 9, 9, 59, 57, 41, 9, 26, 17, 10, -8, -22, 4, -8, -36, -84, -159, -211, -247, -94, -145, -22, -5, -39, -76, --127, -121, -29, -68, -76, -73, -19, 30, 58, 98, 110, 102, 64, 39, 43, 53, 58, 61, 55, 24, 12, -52, -83, -101, -116, --125, -127, -110, -58, -18, -34, -135, -169, -151, -114, -79, -18, 32, 82, 74, 76, 66, 69, 62, 57, 68, 78, 91, 86, 79, -80, 61, 32, 10, 18, 26, 41, 29, 9, 19, -20, -24, -44, -75, -110, -144, -148, -73, -46, -46, -31, -27, -20, -15, 2, --7, -13, -17, -22, -21, -17, -21, -26, -31, -31, -39, -27, -13, 12, 44, 33, 52, 79, 57, 60, 46, 31, 11, 5, -5, --17, -11, -25, 42, 0, 3, 9, 13, 19, 23, 29, 24, 23, 21, 20, 18, 15, 15, 15, 14, 14, 13, 6, 54, 40, --54, 74, 57, -43, -40, -39, -43, -35, -36, -40, 31, 52, -74, 17, 40, -81, -79, -88, -64, -80, -78, -99, -103, -95, -97, --93, -80, -93, -95, -95, -90, -87, -83, -84, -70, -93, -77, 6, 192, -103, -3, 178, 178, 175, 161, 156, 151, 141, -6, -108, -177, 10, 47, -109, -69, -88, -92, -151, -164, -136, -137, -126, -96, -130, -142, -142, -135, -126, -115, -110, -91, -104, 58, -40, -56, --23, -8, -42, -20, -38, -35, -54, -48, -34, -39, -2, -25, -76, -43, -54, -52, -91, -99, -203, -238, -187, -200, -182, -117, -186, --192, -194, -171, -156, -137, -121, -111, -64, -25, -20, -18, -31, 11, 4, 81, 58, 32, 42, 32, -1, 15, -2, -6, -45, -55, --71, -41, -76, -106, -291, -341, -246, -245, -209, -104, -219, -282, -299, -285, -244, -208, -178, -133, -90, 10, 0, 55, 15, 19, 23, -93, 127, 61, 56, 42, 17, 27, 16, 26, -47, 20, -36, -120, -160, -103, -63, -90, -233, -233, -262, -278, -230, -84, 175, 78, -38, 13, -33, -74, -64, 17, -2, 18, 21, 45, 110, 24, 15, 98, 158, 140, 25, 11, -50, -140, -53, -148, -394, -30, 19, --67, -135, -145, -125, 13, 71, 10, 15, 18, 27, -10, -65, -142, -123, -89, -16, 26, 16, 11, 69, 70, 45, 82, 103, 100, -17, 17, 55, 56, 33, 12, -27, -7, -41, 74, -4, -268, -430, -520, -487, -294, -135, -71, -180, -257, -290, -263, -158, 32, -26, --65, -97, -91, -66, -50, -56, -6, 55, 29, 18, 26, 29, 28, -10, 63, 86, 32, -2, 48, 57, -133, -278, -484, -361, -226, --42, -80, -102, -129, -145, -127, -95, -126, -132, -87, -71, -21, 5, 10, -23, -7, 8, 10, 13, 36, 27, 11, 16, 7, -49, --32, -46, -40, 8, -113, -252, -458, -413, -333, -338, -345, -324, -332, -303, -273, -216, -156, -121, -33, 6, 3, -8, -27, -24, -19, --32, -3, 11, -3, -30, -23, -29, -30, -46, -82, -135, -192, -233, -207, -261, -55, -217, -253, -249, -286, -287, -275, -279, -159, -85, --43, -68, -85, -87, -64, -46, -27, -34, -8, 52, 44, 30, 3, 1, -5, -22, -90, -118, -116, -140, -156, -171, -155, -145, -83, --159, -238, -248, -236, -230, -222, -197, -176, -163, -146, -133, -107, -51, 3, 52, 48, 49, 53, 37, 18, 4, 8, 9, 3, 3, -16, 18, 19, -33, -34, -54, -47, -69, -107, -150, -174, -210, -37, -140, -131, -137, -137, -143, -145, -144, -110, -77, -52, -28, -9, -15, 5, 1, -4, -6, 3, -16, -19, -34, -48, -22, -28, -46, -60, -73, -63, -81, -79, -66, -77, -62, -81, -105, -84, -91, --75, -79, -78, -77, -76, -82, -69, -61, -51, -42, -33, -20, -24, -24, -25, -28, -29, -28, -54, -18, 77, -67, -22, 98, 91, -85, 74, 68, 58, 48, -37, -93, 58, -35, -54, 126, 72, 162, 107, 114, 96, 121, 130, 138, 133, 131, 135, 118, 115, 115, -124, 127, 131, 129, 114, 149, 64, -37, -189, 94, -22, -164, -156, -153, -143, -151, -152, -149, -14, 118, -173, -41, -82, 156, 109, -98, 64, 116, 145, 170, 172, 169, 177, 128, 113, 120, 140, 156, 169, 157, 146, 133, -68, 68, 59, 37, 32, 96, 117, 132, -80, 116, 111, 59, 88, 40, 41, 112, 70, 157, 138, 88, 26, 122, 177, 232, 221, 207, 227, 130, 110, 119, 163, 186, 209, -176, 178, 86, 36, 44, 28, 47, 31, 96, 86, 154, 72, 96, 53, 53, 59, 55, 25, 83, 10, 138, 95, 35, -62, 46, -147, 264, 275, 277, 309, 158, 92, 106, 171, 231, 267, 217, 181, 87, -4, 67, 25, 64, 58, 59, 124, 124, 75, 67, 64, -24, 68, 77, 50, 84, 126, 301, 269, 222, 232, 402, 423, 308, 262, 149, 60, 34, 97, 242, 193, 178, 222, 209, 244, 163, -44, 112, 76, 58, 52, 99, 32, 36, 128, 175, 140, 50, 33, -37, -93, 58, -163, -170, 102, 134, -48, 26, 23, -43, 95, -142, 94, 33, 39, 129, 215, 293, 365, 226, 169, 80, 2, 23, 42, 103, 108, 56, 98, 116, 102, 36, 37, 96, 59, 107, -128, 19, 29, 84, 188, 258, 435, 393, 371, 353, 264, 224, 258, 325, 360, 308, 227, 127, 80, 14, 28, 35, 11, 14, -8, --13, 19, 63, 46, 40, 37, 46, 40, 0, 71, 96, 36, 49, 17, 66, 231, 353, 558, 475, 384, 255, 111, 51, 65, 17, -19, 28, 90, 146, 205, 187, 148, 73, -21, 3, 25, 16, 18, 24, 46, 48, 24, 34, 25, -17, -28, 3, -48, 4, -220, -36, 263, 279, 344, 301, 243, 149, 67, 63, 139, 98, 102, 111, 72, 36, 20, -9, 15, 61, 8, 34, 10, 16, 8, -21, --14, -8, -13, -15, -61, -109, -167, -201, -208, -124, -206, -35, 42, -14, -36, -13, 26, 81, 14, -26, -40, 0, 34, 64, 95, -108, 80, 71, 52, 29, 39, 46, 33, 46, 18, -24, -77, -105, -93, -110, -125, -136, -145, -103, -73, -47, -126, -105, -71, -74, --58, -27, -1, 37, 39, 54, 57, 74, 83, 90, 78, 71, 70, 76, 93, 86, 47, 38, 34, 24, 8, 18, -14, -21, -59, --49, -53, -37, -67, -103, -145, -124, -158, -70, -50, -22, 5, 32, 59, 89, 79, 71, 64, 55, 47, 45, 44, 43, 40, 38, -32, 45, -11, 37, 42, 19, 14, 38, 29, 23, -6, 5, -8, -31, -37, -63, -61, -48, 2, 27, 21, 35, 42, 51, 58, -70, 65, 65, 64, 63, 62, 59, 59, 59, 58, 59, 54, 65, 39, -15, -109, 54, -16, -115, -114, -110, -103, -107, -108, -107, --41, 26, -129, -58, 68, -83, 30, -111, -65, -81, -77, -90, -94, -91, -93, -92, -84, -96, -99, -100, -96, -91, -84, -83, -68, --116, 27, 122, 217, -17, 115, 219, 228, 228, 202, 220, 219, 206, 114, -28, 213, 140, 154, -81, -81, -79, -80, -113, -122, -112, --116, -115, -98, -134, -151, -154, -150, -132, -109, -89, -89, -77, 134, -24, -14, 3, 30, 4, 4, 6, 35, -17, -37, -4, -6, -50, 36, -49, 66, -10, -80, -79, -90, -140, -159, -144, -157, -158, -121, -184, -200, -200, -187, -160, -123, -91, -106, -28, 43, 9, --17, -17, 53, 30, 114, 42, 86, 36, 73, 18, 54, 41, 50, 20, 38, -23, -70, -58, -80, -174, -192, -159, -166, -166, -109, --210, -286, -307, -303, -240, -167, -110, -110, -53, 57, -42, 30, -4, 14, 37, 105, 138, 53, 62, 40, 15, 47, 66, 32, -13, -244, 60, -156, -175, -142, -29, -38, -219, -204, -278, -365, -354, -219, 57, 34, 15, -69, -60, -95, 14, 130, 19, 49, 23, 40, -91, 18, 34, 145, 153, 108, 46, -3, -29, -43, 136, -264, -327, -93, 36, -46, -6, -10, -54, -8, 25, 55, 30, 24, 30, -12, -14, -72, -65, -88, 17, 42, 17, 32, 29, 42, 38, 97, 117, 87, 19, 34, 74, 58, 41, 138, -204, 128, 96, 153, -80, -102, -232, -359, -364, -377, -274, -107, -215, -229, -230, -205, -131, 2, -41, -107, -63, -43, -47, -1, -34, 9, 59, 29, 17, -22, 39, 31, -6, 80, 83, 95, 95, 4, 26, -66, -99, -251, -133, -33, 69, 35, 11, 47, -59, -80, -62, -67, -74, -54, --35, -19, 20, 38, -14, 0, -6, -4, 7, 37, 49, 19, 31, 14, -56, -35, -51, -53, -47, -8, -84, -257, -208, -183, -189, --241, -301, -246, -199, -138, -102, -72, -46, -17, -6, -25, -8, -25, -14, 18, -24, -4, 6, -10, -52, -23, -33, -24, -47, -68, --99, -141, -158, -106, -143, 37, -99, -185, -176, -227, -219, -214, -231, -121, -77, -67, -68, -59, -33, -23, -28, -57, -51, -29, 37, -37, 30, 44, 16, -13, -54, -106, -119, -128, -138, -155, -178, -172, -159, -102, -102, -126, -166, -192, -183, -197, -184, -181, -184, -156, --129, -94, -48, -4, 46, 22, 12, -2, 5, -14, 10, 49, 40, 38, 9, 12, -19, -9, -82, -61, -84, -42, -49, -61, -70, --66, -112, -36, -147, -138, -129, -122, -117, -109, -99, -76, -55, -36, -15, 5, 36, 30, 30, 26, 24, 27, 13, 44, -12, -16, --7, -9, -42, -64, -64, -44, -85, -103, -86, -102, -81, -94, -132, -34, -109, -82, -85, -82, -79, -78, -80, -71, -63, -53, -44, --37, -26, -30, -30, -29, -32, -30, -43, 4, 60, 121, -22, 53, 132, 129, 121, 103, 107, 99, 87, 27, -55, 83, 29, -63, -60, -51, 113, 52, 50, 37, 43, 49, 64, 58, 58, 64, 48, 43, 39, 50, 57, 65, 65, 57, 95, -60, -129, -147, -31, --121, -128, -134, -134, -119, -143, -147, -147, -112, -4, -135, -133, -131, 81, 62, 28, 6, 6, 20, 63, 62, 67, 78, 41, 25, -20, 40, 56, 78, 72, 87, 49, -111, 4, -34, -20, -22, 28, 52, 44, -6, 40, 56, 2, 32, -9, -31, 44, -9, 114, -100, 11, -19, -27, -7, 92, 67, 69, 94, 12, -14, -31, 21, 53, 97, 91, 122, 27, -40, -18, -33, -8, -19, 65, 49, -130, 25, 85, 20, 16, 31, 24, -21, 27, -39, 120, 84, -22, -77, -135, -99, 68, 63, 87, 140, 24, -53, -80, -31, 32, -103, 100, 132, 35, -46, 36, -42, 30, 55, 87, 136, 137, 97, 67, 74, 32, 85, 75, 36, 40, 74, 200, 165, 84, 74, -231, 233, 80, 153, 81, -30, -25, 46, 201, 173, 163, 223, 160, 173, 71, 5, 112, 63, 44, 23, 76, 22, 49, 176, 146, -90, 31, -19, -91, -75, 40, -398, -146, 132, 122, -20, -3, -44, -130, -31, 45, 119, 19, -1, 43, 128, 175, 185, 74, 73, -27, -23, 2, 11, 61, 76, 45, 109, 124, 82, 37, 42, 97, 47, 102, 172, -184, 141, 188, 209, 175, 152, 90, 46, 60, -65, 95, 188, 175, 197, 168, 132, 70, 44, -3, 29, -1, -31, 5, -14, -26, 15, 60, 42, 38, 29, 51, 39, -10, 50, -90, 49, 136, -63, -42, 38, 62, 157, 187, 208, 262, 57, -24, 28, -71, -79, -35, 25, 65, 115, 115, 114, 54, -34, -10, -12, -7, -5, 4, 47, 51, 27, 40, 29, -5, -29, -6, -57, -38, -213, -113, 11, 18, 80, 35, -10, -74, -64, -45, -22, --12, 2, 15, 5, -2, 1, -16, 9, 24, -30, 9, 3, 6, 0, -46, -30, -22, -46, -37, -77, -113, -140, -162, -160, -160, --184, -102, -24, -54, -31, -5, 32, 47, 27, -1, -21, -4, 6, 28, 30, 30, 25, 37, 38, 22, 25, 29, 7, 11, -11, --58, -90, -111, -91, -117, -143, -167, -176, -161, -150, -106, -133, -89, -53, -78, -74, -76, -75, -63, -52, -31, -16, 13, 40, 68, -53, 42, 33, 38, 61, 43, 11, 31, 47, 16, -16, -33, -61, -71, -126, -89, -86, -56, -76, -98, -125, -111, -179, -108, -79, --59, -30, -3, 26, 50, 54, 56, 58, 58, 55, 54, 56, 60, 62, 62, 62, 70, 3, 27, 2, -17, -38, -36, -35, -51, --76, -59, -63, -89, -91, -112, -117, -94, -74, -6, -13, -3, 4, 10, 15, 25, 25, 28, 30, 32, 34, 36, 36, 35, 35, -36, 32, 50, -21, -70, -92, -23, -86, -107, -111, -109, -101, -114, -116, -116, -105, -50, -118, -118, 22, -8, 114, -25, -4, -11, --13, -8, -6, -3, -8, -10, -9, -18, -21, -25, -20, -16, -8, -4, -1, -33, 104, 131, 70, 77, 134, 92, 106, 109, 90, -114, 116, 105, 139, 76, 82, 151, 136, 27, -21, -10, -19, -5, 4, 12, 3, -4, -3, -31, -50, -57, -52, -32, -7, 16, -0, 19, 100, 15, 38, 26, 49, 66, 56, 76, 94, 55, 25, 34, 49, 77, 71, 28, 142, 86, -24, -13, -37, -4, 17, -32, 10, -6, -6, -53, -74, -81, -71, -40, 1, 31, 8, 39, 77, 31, -1, 8, 62, 65, 113, 63, 110, 53, 92, 35, -78, 73, 70, 84, 108, 76, -35, -15, -48, -11, 35, 71, 45, 23, 28, -43, -112, -138, -133, -69, 9, 62, 24, 28, 58, --42, -3, -5, 21, 58, 121, 141, 58, 70, 49, 16, 73, 107, 33, 49, 360, 205, -10, -35, -68, 120, 142, -26, -8, -119, --270, -277, -195, -23, 38, 52, -25, 22, 18, 112, 167, 69, 81, 41, 36, 69, 10, 52, 191, 139, 74, 54, -27, -31, 30, -257, -317, -194, -112, 48, 7, 114, 97, -39, -40, -8, 108, 43, 30, 63, 87, 119, 121, 75, 4, 56, 44, 26, 50, 19, -35, 37, 104, 118, 70, 30, 45, 69, 69, 93, 225, -256, 233, 237, 218, 201, 224, 191, 96, 4, -167, -176, -9, -40, 18, -54, 20, -10, -16, -28, -75, -5, 19, -5, 31, -1, 26, 57, 33, 24, 23, 52, 49, 20, 93, 83, 129, 178, -55, -27, -62, 181, 213, 264, 265, 197, 156, 122, 177, 44, -3, 4, 46, 60, 58, 58, 26, 41, 40, 3, 5, -7, -5, 0, 31, -57, 30, 34, 16, -30, -21, -13, -38, -69, 11, 89, 92, 115, 90, 84, 14, -98, -41, -4, 67, 70, 69, 67, 31, 11, --15, 7, 6, 18, 42, 8, 4, 4, -9, -49, -31, -43, -29, -36, -42, -52, -75, -87, -77, -26, 14, 13, -33, -30, -47, --65, -62, -39, -44, -54, -59, -27, 11, 48, 39, 20, -21, -13, -10, 18, 26, 31, 70, 21, -24, -69, -95, -103, -122, -128, --149, -173, -174, -148, -118, -38, -34, -66, -91, -83, -95, -88, -94, -97, -71, -41, -17, -8, 0, 19, 7, 3, -6, 12, 7, -43, 70, 55, 54, 6, -14, -66, -61, -110, -93, -104, -63, -55, -45, -28, -13, -37, -77, -97, -89, -70, -58, -43, -27, -11, --12, -17, -17, -14, -5, 10, 10, 12, 11, 13, 7, 11, 53, 5, 13, -2, 4, -14, -33, -28, -22, -58, -86, -86, -95, --89, -88, -107, 9, -62, -47, -44, -40, -36, -33, -28, -30, -27, -25, -22, -21, -21, -21, -20, -19, -18, -15, -30, 41, 67, -46, 24, 63, 40, 41, 36, 23, 31, 28, 20, 33, -2, 1, 30, -27, -44, -106, -12, -35, -47, -48, -64, -64, -48, -54, --52, -46, -55, -59, -66, -58, -52, -43, -39, -33, -26, -113, -98, 18, -113, -101, 24, 14, 12, 15, -2, -7, -15, -94, -99, -18, -94, -55, -39, -30, -64, -67, -116, -121, -77, -84, -74, -60, -76, -91, -109, -100, -89, -65, -51, -25, -59, -52, -55, -89, --55, -45, -32, -18, -37, -52, -36, -20, -44, -23, -24, -62, -43, -38, 26, -5, -79, -73, -174, -193, -94, -126, -111, -85, -126, --148, -185, -154, -124, -77, -42, -7, -37, -66, -58, -66, -56, -35, 23, 35, 67, 10, 57, 18, -16, 16, 4, -36, -21, -40, -33, 4, -76, -82, -264, -295, -144, -170, -137, -74, -125, -197, -264, -259, -213, -134, -66, 2, -36, -44, -27, -64, -20, 27, 84, -128, 141, 93, 67, 69, 31, 86, 69, 9, -17, 104, 65, -24, -117, -157, -29, -38, -207, -67, -95, -209, -173, -90, 62, 81, -84, 92, 39, 22, -21, 17, 67, 41, 26, 6, 53, 4, 53, 207, 108, 41, 9, -79, -120, -37, 78, -472, -195, -1, 36, -28, -13, -66, -149, -133, -58, 115, 18, -18, -15, 13, 2, -63, -90, -58, -21, -6, 4, 3, 17, 36, 38, 109, 116, 57, -34, 38, 63, 58, 90, 160, -310, 239, 243, 191, 78, -129, -173, -256, -316, -221, -129, -8, -77, -71, -54, -30, -22, -17, -27, --17, -60, -63, -19, -15, -28, 14, 50, 28, 25, 21, 50, 48, 17, 52, 72, 77, 195, -120, -112, -159, -212, -271, -137, -13, -144, 40, -18, -1, -89, -114, -80, -42, -31, -20, -13, 14, 14, -13, -18, -17, -24, -19, -13, 30, 39, 23, 28, 16, -4, --21, -15, -37, -74, -101, -167, -255, -259, -213, -237, -252, -263, -185, -154, -177, -117, -83, -68, -37, -14, -2, 6, 9, -14, -35, --18, 5, -7, -18, -56, -49, -49, -65, -50, -67, -83, -88, -104, -103, -149, -81, -141, -113, -98, -65, -60, -43, -57, -31, -18, --2, -11, -20, -16, -45, -51, -38, -16, 8, 22, 19, 15, 1, -27, -46, -81, -95, -108, -106, -131, -160, -189, -196, -199, -182, --140, -118, -86, -73, -99, -106, -125, -141, -155, -131, -107, -80, -54, -25, 7, 6, 7, 7, 6, 14, 5, -3, 18, 36, -10, --45, -91, -98, -118, -148, -118, -108, -92, -89, -86, -82, -92, -114, -111, -94, -92, -80, -70, -57, -52, -35, -23, -13, -2, 4, -10, 9, 12, 14, 15, 20, 15, -6, -24, -53, -52, -69, -88, -85, -101, -107, -106, -103, -117, -115, -117, -127, -113, -104, -59, --59, -57, -55, -55, -54, -52, -47, -42, -37, -32, -27, -21, -21, -21, -21, -21, -22, -13, -65, -69, -10, -82, -87, -19, -26, --30, -30, -42, -47, -50, -97, -99, -36, -97, -50, 64, 101, 79, 53, 56, 47, 63, 69, 78, 71, 68, 66, 59, 56, 51, -55, 59, 65, 70, 62, 68, 88, 32, -114, 94, 43, -82, -74, -70, -70, -59, -58, -64, 54, 110, -95, 44, 15, 109, 46, -47, 31, 69, 91, 111, 102, 95, 91, 75, 59, 44, 51, 65, 84, 100, 87, 89, -10, 32, 44, 19, 28, 88, 80, 102, -91, 94, 74, 42, 75, 55, 43, 78, 122, 140, 52, 37, 9, 75, 120, 167, 140, 125, 111, 79, 56, 33, 47, 72, 106, -125, 119, 73, 47, 20, -1, 12, 27, 83, 72, 87, 86, 74, 74, 32, 70, 68, 33, 95, 84, 130, 21, 9, -30, 58, -137, 221, 190, 177, 170, 130, 73, 27, 38, 81, 140, 176, 143, 78, 7, -20, -39, -5, 26, 79, 128, 132, 72, 75, 67, -22, 99, 118, 14, 70, 319, 287, 153, 88, 3, 214, 259, 136, 177, 75, -89, -112, -86, -28, 71, 106, 85, 125, 152, 157, -116, 103, 80, 51, 26, 43, 3, 60, 211, 111, 40, 30, -71, -73, 47, 257, -336, -108, -93, 45, 65, 147, 115, -32, -57, --20, 144, 42, 22, 74, 146, 211, 241, 157, 88, 61, 28, 36, 53, 29, 45, 47, 108, 110, 53, 41, 46, 63, 86, 138, -203, -231, 275, 306, 247, 261, 393, 493, 447, 234, 82, 5, 83, 169, 264, 294, 238, 130, -5, -5, -9, 22, 32, 23, 29, -21, 38, 47, 31, 28, 27, 60, 68, 62, 81, 62, 104, 218, -118, -73, 108, 293, 492, 464, 401, 236, 221, 183, 185, 105, -57, 48, 119, 157, 149, 126, 71, 46, 12, 10, -4, -13, -8, -4, 17, 41, 28, 23, 9, 4, -12, 17, -17, -80, -29, -172, 296, 277, 267, 244, 202, 117, 123, 121, 155, 144, 133, 120, 61, 29, 18, 27, 38, 43, 30, 29, 20, -5, -17, -35, --43, -48, -34, -18, -19, -20, -28, -40, -63, 34, -90, 41, 79, 73, 83, 70, 80, 123, 27, -14, -17, 26, 65, 94, 69, -57, 32, 39, 29, 11, 25, 31, 50, 6, -36, -73, -77, -88, -105, -117, -138, -156, -174, -149, -136, -33, 5, 9, 6, 3, -2, 5, 0, 4, 17, 36, 44, 27, 8, -3, 2, 8, 12, 28, 40, 61, 52, 39, 40, -9, -50, -100, -109, -113, -121, --111, -97, -80, -56, -29, -14, -6, -109, -35, -29, -11, 2, 19, 36, 50, 36, 17, 5, -5, -9, -14, -11, -11, -13, -12, --21, -8, 1, -3, 7, -16, -9, -2, -7, -5, -19, -26, -43, -64, -61, -76, -68, -55, 10, -7, -10, -2, 1, 5, 7, -16, 8, 7, 4, 2, -1, -6, -5, -4, -4, -2, -2, -6, 27, 7, -67, 27, 4, -83, -81, -81, -80, -77, -76, -75, --13, 17, -93, -20, 2, -100, -61, -104, -83, -98, -91, -114, -117, -106, -111, -110, -104, -107, -109, -117, -114, -111, -104, -98, -83, --110, -67, 8, 144, -96, 0, 147, 141, 139, 128, 132, 129, 113, 4, -97, 138, 22, 62, -101, -91, -106, -96, -152, -165, -137, --148, -140, -126, -125, -138, -165, -169, -163, -144, -114, -96, -103, 42, -69, -77, -50, -28, -36, -44, -54, -28, -53, -54, -46, -35, --1, -42, -79, 1, -28, -90, -116, -91, -203, -231, -171, -202, -186, -165, -167, -184, -229, -228, -210, -172, -113, -97, -54, -33, -54, --60, -66, -16, 10, 40, 8, 34, 35, 42, -24, 24, 10, -20, -20, 2, -30, -75, -91, -65, -238, -288, -207, -243, -218, -163, --155, -215, -307, -341, -318, -251, -146, -90, -63, -12, -76, -49, -56, -6, 68, 106, 130, 72, 70, 61, 23, 83, 71, -24, -47, -214, 13, -151, -234, -290, -181, -172, -313, -186, -205, -318, -294, -217, -84, -13, 7, -51, -56, -84, -30, 70, 21, 23, 17, 7, -31, -7, 50, 202, 76, 8, -11, -126, -115, 27, 175, -414, -259, -171, -37, 85, 22, -29, -91, -150, -102, 106, 22, -14, -29, --40, -80, -179, -140, -119, -32, 29, 26, 20, -10, 10, 42, 102, 100, 37, 27, 33, 46, 91, 85, 97, -342, 292, 253, 174, -39, -225, -166, -255, -460, -355, -273, -182, -213, -193, -154, -110, -63, -43, -36, -62, -82, -63, -36, -4, -8, 22, 34, 14, 11, -16, 52, 63, 67, 54, 30, 87, 217, -144, -121, -228, -269, -376, -245, -115, 7, 80, 70, 36, -22, -61, -49, -54, -63, -81, --76, -57, -14, 20, -15, -38, -36, -27, -19, 3, 16, 12, 6, -6, -12, -19, -26, -13, -106, 53, -61, -281, -295, -282, -286, --274, -246, -182, -168, -198, -125, -90, -80, -35, -4, 5, 28, 9, -27, -10, -27, 12, -18, -36, -49, -57, -62, -50, -39, -34, --31, -24, -28, -11, -57, 0, -112, -142, -101, -99, -98, -104, -134, -74, -30, 1, -14, -25, -24, -62, -71, -55, -40, -10, 26, -27, 12, 2, -46, -64, -84, -90, -97, -117, -135, -158, -179, -195, -208, -177, -148, -64, -67, -83, -89, -101, -116, -133, -156, -133, --118, -91, -75, -55, -32, -26, -18, -14, -14, -23, -13, 4, 8, 14, -31, -62, -118, -109, -139, -134, -130, -111, -114, -86, -57, --23, -52, -26, -89, -89, -97, -103, -108, -111, -119, -97, -80, -66, -49, -34, -21, -25, -27, -28, -29, -25, -38, -17, -60, -76, --61, -63, -88, -89, -95, -81, -98, -97, -93, -94, -81, -91, -99, -80, -96, -86, -91, -93, -95, -98, -104, -96, -90, -83, -77, --71, -62, -65, -65, -65, -67, -64, -70, -67, -29, 52, -90, -40, 52, 47, 41, 32, 30, 25, 21, -41, -94, 36, -33, -101, -70, 11, 110, 57, 60, 50, 62, 69, 83, 76, 74, 74, 70, 67, 59, 63, 66, 70, 75, 65, 98, -2, -84, -186, 25, --73, -159, -164, -161, -145, -154, -156, -160, -61, 50, -173, -82, -96, 101, 59, 42, 27, 51, 70, 103, 95, 98, 99, 97, 85, -62, 67, 72, 85, 91, 95, 78, -101, 10, -4, -15, -16, 55, 52, 60, 34, 68, 71, 15, 52, 5, -23, 61, 39, 116, -74, 23, 8, 38, 76, 155, 126, 126, 121, 107, 86, 42, 58, 71, 100, 110, 133, 51, -18, -18, -25, -12, -25, 72, 16, -82, 40, 80, 39, 8, 37, 33, -29, 53, 12, 112, 43, -11, -36, -4, 50, 169, 145, 163, 180, 179, 129, 50, 55, 71, -114, 137, 150, 67, -49, -5, -65, -15, 19, 92, 114, 111, 87, 80, 84, 30, 109, 91, -26, 38, 198, 229, 183, 81, -7, -155, 207, 146, 217, 155, 17, -9, -7, -3, 85, 123, 154, 150, 182, 118, 32, 95, 46, 47, 14, 18, 1, 58, 192, 76, -8, -19, -122, -117, 42, 190, -358, -110, -57, 36, 124, 100, 41, -52, -85, -34, 155, 28, -3, 49, 122, 176, 189, 117, 94, -27, 5, 36, 35, 32, 49, 58, 101, 93, 35, 36, 38, 73, 111, 146, 82, -222, 261, 295, 216, 189, 242, 433, 444, 200, -181, 107, 83, 226, 316, 325, 273, 164, 9, 7, 40, 15, -2, 21, 7, 28, 40, 28, 23, 26, 24, 64, 79, 91, 35, -11, 47, 212, -157, -114, 23, 154, 366, 314, 261, 155, 183, 159, 118, 90, 56, 59, 100, 138, 138, 113, 71, 22, -20, 2, --22, -29, -18, -9, -3, 9, 13, 4, -3, 21, -11, 20, -7, -90, -52, 124, 249, 204, 215, 183, 189, 183, 130, 95, 78, -81, 82, 71, 43, 29, 39, 31, 45, 37, -3, 24, 22, -13, -27, -28, -52, -42, -28, -6, -10, -7, -1, -5, -25, 34, --177, -17, 69, 61, 82, 101, 117, 142, 57, 24, 18, 49, 66, 75, 50, 46, 59, 60, 51, 15, 30, 24, -6, -27, -47, --67, -63, -78, -88, -108, -127, -135, -174, -168, -167, -95, -11, 26, 47, 37, 47, 43, 40, 45, 45, 50, 47, 31, 14, -3, -10, 19, 27, 33, 55, 49, 9, 9, 12, -23, -73, -105, -129, -106, -142, -113, -124, -105, -78, -54, -44, -18, -114, -19, -12, --2, 10, 23, 37, 48, 38, 27, 18, 9, 1, -10, -9, -11, -11, -12, -18, -6, -45, -15, -18, -37, -37, -18, -10, -13, --35, -15, -15, -41, -35, -61, -56, -28, -33, 11, -3, 5, 7, 9, 11, 18, 12, 10, 8, 6, 3, 0, 1, 0, 0, -1, -2, 8, -24, -70, -133, -16, -77, -150, -150, -145, -134, -139, -136, -129, -76, -13, -134, -84, -2, -74, 30, -97, -62, -72, --66, -77, -79, -73, -78, -78, -76, -73, -74, -82, -84, -83, -79, -73, -62, -97, 22, 87, 127, -11, 83, 139, 139, 140, 127, -145, 145, 130, 87, -17, 125, 107, 119, -67, -78, -72, -65, -86, -92, -83, -94, -91, -83, -71, -83, -113, -125, -122, -107, -79, --78, -58, 83, -38, -24, -19, 4, 8, -17, -10, 35, -9, -27, -11, -3, 31, 0, -45, 67, -15, -93, -80, -66, -108, -115, --95, -117, -110, -103, -82, -96, -141, -161, -155, -128, -80, -85, -17, 18, -21, -35, -42, 11, 30, 45, -9, 72, 34, 68, -6, -40, 30, 2, 22, 56, -29, -92, -60, -41, -93, -112, -98, -127, -115, -85, -39, -85, -186, -233, -228, -177, -93, -78, -24, 19, --81, -31, -62, -24, 60, 80, 103, 60, 80, 63, 22, 82, 72, -52, -29, 308, 52, -126, -189, -248, -150, -105, -167, -115, -156, --270, -291, -245, -156, -52, -15, -97, -60, -76, 30, 109, 6, 19, 26, 19, 11, -5, 49, 164, 56, -6, -34, -144, -85, 90, -265, -310, -249, -247, -48, 150, 88, 36, -9, -117, -92, 108, 35, 5, 7, -22, -46, -107, -58, -72, -3, 48, 42, 40, -12, -8, 51, 86, 76, 22, 14, 27, 58, 134, 96, 7, -306, 275, 253, 151, 37, -117, 34, 3, -222, -218, -223, -199, -149, -92, --45, -36, -22, -39, -30, -69, -46, -25, -26, 13, 25, 35, 17, 6, 5, 12, 58, 78, 101, 31, -27, 71, 195, -133, -112, --149, -101, -136, -88, -47, -47, 139, 172, 117, 85, 40, 28, -3, -13, -45, -49, -64, -28, 29, -10, -43, -42, -30, -15, -22, --6, 1, -11, -18, -13, -9, -17, -4, -112, 142, 108, -37, -51, -86, -81, -65, -39, -48, -63, -79, -42, -23, -20, 0, 16, -16, 38, 17, -8, 26, -10, 10, -18, -40, -40, -52, -52, -11, -15, 1, 18, 28, 37, 57, 55, 4, -46, -98, -61, -81, --75, -87, -98, -58, -23, -3, 2, 3, 6, -17, -29, -18, -19, -6, 26, 34, 15, 1, -46, -63, -68, -71, -79, -112, -123, --136, -142, -174, -185, -158, -124, -2, -22, -49, -36, -41, -43, -52, -67, -53, -47, -32, -34, -34, -29, -20, -9, -5, -1, -13, -9, 24, 6, -4, -38, -62, -110, -103, -130, -110, -122, -103, -113, -74, -35, 6, -14, 5, -55, -62, -67, -75, -82, -88, -93, --82, -74, -66, -55, -41, -27, -32, -35, -39, -39, -40, -47, -12, -51, -49, -42, -32, -47, -51, -45, -27, -52, -58, -47, -53, --42, -45, -64, -26, -78, -66, -71, -73, -75, -78, -83, -79, -76, -72, -68, -65, -60, -63, -62, -62, -63, -61, -73, -28, 12, -42, -43, 9, 43, 44, 39, 30, 37, 36, 33, 9, -42, 33, 16, -84, 11, -76, 48, 7, 5, 1, -3, 0, 14, 10, -11, 14, 14, 11, 1, 4, 5, 9, 12, 10, 40, -85, -125, -108, -65, -121, -92, -108, -107, -89, -108, -112, -117, -112, -45, --106, -125, -111, 14, 12, -13, -18, -33, -30, 3, -1, 11, 23, 35, 26, -6, -8, -11, -1, 3, 24, 2, -105, -33, -64, --49, -48, -2, -5, -13, -25, 5, 22, -21, 2, -33, -74, -3, -35, 32, 28, -33, -27, -70, -65, 15, -6, 14, 28, 37, -18, -43, -36, -34, -7, 6, 44, -4, -67, -55, -56, -46, -56, 41, -18, 47, 12, 65, 15, -15, 5, -4, -71, -4, -44, -29, 18, -46, -46, -119, -130, -25, -36, 13, 66, 102, 58, -54, -72, -80, -43, -12, 48, 12, -67, -15, -74, -37, -1, 91, -85, 86, 96, 86, 91, 40, 99, 49, -61, -17, 97, 79, 69, -38, -100, -28, 22, 18, 96, 84, -1, -38, -31, -7, 50, -80, 120, 76, 84, 22, -25, 47, 4, 37, 8, -4, 5, 53, 141, 44, -13, -68, -155, -130, 43, 127, -362, -152, -61, 11, -185, 41, -39, -48, -112, -60, 126, 22, -16, 0, 26, 29, 1, -11, 22, -11, -8, 25, 12, 20, 40, 61, 83, 66, 14, -13, 23, 86, 141, 120, -71, -251, 210, 260, 137, 15, -96, 60, 114, 7, 89, 63, -3, 101, 151, 155, 145, 96, 9, -4, -29, -17, -40, -2, -14, 23, 34, 10, 9, 14, 14, 62, 79, 91, -24, -52, -3, 163, -153, -151, -124, -100, -24, -31, -18, -26, 96, 104, 37, 50, 33, 34, 21, 34, 37, 21, 15, -24, -40, -19, -41, -47, -34, -13, -20, -20, -4, -11, -8, 22, --1, 9, -13, -86, -17, 24, 56, 23, 37, 6, 40, 103, 34, -11, -74, -54, -35, -23, -2, 14, 36, 28, 34, 10, -21, -4, 7, -19, -34, -35, -52, -31, -13, -4, -9, -3, 11, 17, 12, 5, -180, -107, -46, -37, -9, 27, 45, 47, 33, 38, -43, 48, 32, 16, 0, 3, 43, 42, 43, 24, 27, 9, -52, -60, -59, -56, -55, -73, -78, -103, -119, -120, -166, -183, -186, --163, -47, 2, 27, 16, 28, 18, 17, 18, 16, 13, 12, 10, 10, 7, 20, 28, 37, 31, 47, 29, -18, -16, -19, -36, --74, -91, -117, -99, -141, -111, -129, -119, -99, -83, -77, -50, -83, -32, -26, -27, -22, -17, -12, -11, -6, -1, 2, 2, 1, --5, -6, -7, -6, -7, -6, -2, -52, -26, -44, -50, -58, -49, -36, -43, -56, -34, -23, -37, -35, -51, -53, -31, -67, -1, --15, -12, -12, -13, -13, -12, -11, -11, -10, -10, -9, -7, -7, -8, -8, -8, -11, 3, -61, -95, -100, -58, -106, -112, -113, --110, -99, -107, -106, -100, -96, -52, -92, -98, -20, 1, 84, -13, -1, -2, -2, 3, 6, 8, 6, 5, 4, 8, 6, -2, --5, -6, -3, 1, 1, -12, 74, 75, -3, 61, 80, 21, 23, 26, 25, 41, 42, 33, 86, 63, 4, 92, 74, 20, -15, --2, -3, 15, 21, 21, 15, 18, 22, 34, 24, -5, -17, -18, -8, 8, -2, 24, 42, 2, 19, 5, 20, 54, 27, 46, -79, 50, 29, 28, 39, 42, 23, 21, 98, 36, -28, -10, -14, 19, 41, 42, 36, 38, 35, 58, 43, -3, -24, -28, -12, -8, -1, 31, 38, 2, -17, -11, 16, 59, 34, 13, 91, 50, 72, 18, 46, 42, 8, 63, 73, 17, -45, -12, -13, 50, -71, 60, 54, 67, 79, 132, 99, 1, -37, -46, -18, 18, 3, 35, 18, -51, -31, -45, -22, 66, 63, 74, 70, 93, 75, -32, 85, 67, -59, 13, 295, 121, 3, -47, -107, -22, 58, 88, 66, 10, -84, -171, -171, -134, -35, 9, -32, 10, 15, 86, -88, 18, 16, 43, 30, -11, 10, 54, 107, 44, -8, -55, -137, -57, 123, 278, -225, -155, -205, -14, 215, 142, 85, 65, -63, --56, 98, 43, 22, 34, 31, 43, 49, 60, 24, 35, 36, 39, 46, 8, 27, 61, 70, 51, 5, -1, 23, 89, 170, 108, --86, -236, 203, 268, 122, 29, 40, 189, 255, 186, 58, -40, -76, 40, 119, 149, 122, 73, -5, -14, -39, 9, 20, 2, 21, -50, 44, 6, 1, 4, 9, 63, 82, 99, -13, -76, 27, 131, -107, -111, -22, 110, 198, 149, 94, 6, 170, 221, 163, 168, -135, 96, 65, 62, 41, 20, -22, -28, 1, -12, -37, -43, -32, -9, -33, -19, -5, -15, -12, 3, 11, 12, -7, -83, 131, -226, 266, 260, 213, 199, 197, 203, 130, 86, 70, 50, 43, 49, 36, 29, 22, 36, 31, 23, 43, 14, 0, -18, -35, -33, --38, -25, 22, 10, 21, 38, 46, 60, 66, 119, -74, -4, -29, -14, -20, -8, -4, 23, 6, 9, 14, 38, 50, 49, 43, -38, 39, 29, 20, 23, 27, 10, -9, -40, -55, -48, -51, -62, -88, -98, -105, -99, -140, -144, -139, -101, 27, 20, 5, 25, -29, 39, 45, 51, 52, 52, 51, 33, 16, 2, 11, 18, 24, 30, 28, 49, 36, 3, -21, -36, -55, -78, -89, -99, -95, --104, -98, -104, -72, -39, -14, -3, -16, -12, -19, -15, -17, -18, -19, -17, -22, -27, -30, -30, -26, -21, -22, -24, -27, -26, --32, -25, -8, -19, -8, -17, -7, -5, -8, 2, 6, -7, -17, -14, -18, -19, -14, -22, 24, -14, -12, -13, -14, -14, -15, --16, -17, -18, -19, -19, -21, -22, -23, -22, -22, -21, -20, -28, 16, 23, -17, 15, 25, -22, -18, -18, -20, -11, -9, -9, -23, 17, -20, 25, -17, -58, -92, -47, -50, -58, -55, -71, -73, -65, -65, -62, -56, -54, -56, -66, -67, -67, -64, -61, -53, --50, -98, -70, 35, -102, -72, 41, 25, 24, 34, 21, 17, 9, -69, -95, 30, -63, -31, -72, -49, -68, -60, -105, -117, -98, --98, -81, -62, -45, -51, -85, -97, -105, -97, -88, -64, -72, -36, -62, -89, -57, -47, -37, -47, -59, -38, -41, -29, -35, -32, --33, -73, -58, -47, -45, -43, -81, -59, -150, -173, -129, -131, -100, -74, -51, -64, -129, -138, -146, -126, -101, -70, -50, -69, -68, --71, -63, -48, 16, -16, 3, 24, 42, 17, -19, -4, -15, -63, -30, -41, -47, -30, -64, -40, -176, -240, -195, -187, -129, -59, --1, -35, -157, -205, -229, -202, -154, -82, -45, -45, -46, -64, -58, -24, 77, 54, 66, 99, 92, 86, 47, 79, 22, -72, -50, -75, -54, -87, -166, -198, -200, -150, -111, -58, -41, -75, -145, -129, -56, -19, 5, 14, -28, -50, -55, -28, -11, -26, 28, 13, --21, 17, 53, 78, 23, -22, -90, -156, -98, 69, 117, -305, -172, -112, -17, 235, 33, -52, -1, -116, -84, 69, 25, -6, -42, --66, -106, -161, -115, -65, -31, -4, 11, 4, 4, 27, 59, 63, 38, -10, -12, 16, 100, 163, 71, -183, -269, 145, 237, 61, --140, -373, -326, -238, -117, -73, -67, -103, -79, -67, -55, -24, 1, 6, -19, -18, -40, -47, -18, -17, 21, 27, 0, -8, -2, -4, 57, 68, 65, -61, -94, -26, 82, -114, -158, -221, -267, -337, -293, -220, -55, 31, 72, 14, 46, 38, 21, -42, -69, -71, --78, -58, -59, -39, -40, -52, -56, -44, -18, -31, -34, -14, -18, -6, 10, 14, 0, -17, -65, 65, -17, -89, -88, -82, -111, --86, -9, -42, -77, -158, -136, -119, -93, -34, 0, 18, 24, 17, -13, -14, -18, -14, -26, -40, -43, -38, -14, 6, -4, -6, --1, 15, 29, 48, -1, -119, -149, -154, -127, -104, -69, -53, -64, -8, 31, 51, 31, 2, -23, -33, -26, 8, 9, 21, 32, -17, -11, -66, -73, -64, -50, -54, -67, -72, -95, -106, -102, -138, -170, -177, -195, -62, -32, -24, -25, -21, -27, -25, -27, -23, --26, -18, -10, 4, 15, 21, 25, 30, 21, 19, 10, -17, -25, -40, -43, -58, -66, -84, -90, -117, -106, -117, -123, -108, -95, --82, -67, -22, -43, -43, -53, -56, -63, -69, -77, -61, -45, -32, -20, -12, -6, -8, -8, -7, -7, -1, -6, -30, -32, -53, --46, -56, -65, -57, -63, -61, -54, -45, -43, -42, -38, -45, -42, -59, -25, -28, -33, -36, -39, -42, -48, -40, -37, -34, -30, --27, -20, -21, -21, -21, -22, -22, -15, -57, -54, -6, -65, -64, -9, -12, -13, -10, -16, -17, -18, -56, -63, 0, -48, -38, -56, 60, 67, 45, 50, 44, 57, 62, 64, 64, 64, 64, 66, 63, 56, 54, 52, 53, 55, 48, 64, 49, -8, -128, 63, -4, -99, -102, -98, -83, -84, -84, -85, 12, 78, -114, 1, -24, 78, 43, 45, 35, 67, 79, 82, 85, 91, 95, 104, 97, -73, 63, 57, 61, 62, 56, 68, -43, 15, 15, 4, 8, 62, 45, 62, 71, 72, 63, 40, 53, 22, 9, 60, 66, 68, -43, 35, 19, 72, 105, 115, 125, 133, 129, 143, 127, 83, 70, 59, 67, 63, 66, 45, 7, -6, -23, 1, -3, 68, 10, -43, 79, 63, 51, 28, 35, 35, -10, 66, 47, 61, 24, 18, 0, 85, 116, 123, 144, 172, 185, 227, 208, 124, 93, 70, -76, 71, 61, 53, -20, -19, -50, -27, -11, 77, 53, 53, 97, 102, 88, 48, 86, 53, -51, 40, 172, 124, 106, 56, 5, -55, 146, 244, 204, 161, 105, -31, -70, -66, 6, 48, 71, 84, 100, 86, 17, 29, 7, 51, 32, -27, 32, 64, 53, 31, --11, -70, -119, -44, 117, 202, -176, -43, -100, 29, 257, 158, 86, 86, -38, -34, 73, 48, 34, 31, 55, 90, 141, 108, 78, -35, -1, 18, 36, 28, 48, 63, 54, 26, -16, -10, 27, 119, 171, 91, -155, -168, 105, 278, 86, -13, 53, 139, 293, 467, -257, 120, 69, 184, 254, 264, 219, 136, 37, 6, 11, 47, 40, 29, 17, 54, 39, 3, -4, 2, 9, 62, 69, 60, -51, --92, -21, 43, -80, -121, 30, 170, 326, 240, 155, 88, 140, 182, 154, 182, 166, 121, 96, 88, 83, 54, 12, -25, -41, -25, --33, -41, -31, -8, -31, -26, -9, -14, 1, 17, 25, 32, -11, -37, 58, 205, 388, 394, 368, 329, 312, 304, 220, 169, 139, -86, 59, 57, 41, 29, 30, 28, 37, 42, 28, 22, -14, -23, -31, -29, -19, 7, 33, 22, 19, 26, 36, 51, 49, 110, --165, -14, 14, 10, 25, 51, 74, 117, 64, 42, 37, 60, 74, 71, 75, 79, 75, 66, 46, 20, 12, -6, -34, -36, -43, --38, -39, -51, -57, -69, -73, -61, -96, -104, -132, -104, 9, 31, 39, 50, 61, 75, 90, 112, 106, 104, 95, 74, 54, 35, -40, 41, 44, 47, 53, 59, 23, -7, -32, -32, -47, -44, -73, -66, -91, -88, -102, -103, -85, -68, -63, -22, -48, 13, 12, -20, 25, 31, 35, 39, 26, 16, 9, 3, 0, -6, -3, -2, -1, 0, -4, 9, -11, 9, 15, -4, -4, 11, 12, 17, -5, 12, 5, -5, -3, -15, -5, 5, 32, 39, 29, 32, 32, 32, 33, 36, 32, 30, 26, 23, 20, 16, 17, 18, 18, -20, 19, 22, 27, 0, -70, 36, 0, -82, -78, -75, -69, -67, -63, -60, -3, 36, -68, -3, 35, -79, -34, -96, -67, -77, --70, -86, -90, -89, -86, -82, -77, -74, -75, -82, -87, -89, -87, -85, -73, -95, -40, 23, 116, -62, 20, 123, 115, 115, 114, -115, 113, 104, 21, -66, 114, 38, 65, -90, -71, -75, -64, -104, -121, -120, -115, -101, -85, -69, -74, -100, -121, -130, -126, -112, --101, -88, 38, -58, -64, -35, -17, -28, -44, -48, -2, -38, -40, -17, -27, -2, -27, -59, -1, -64, -79, -79, -60, -138, -163, --162, -146, -118, -99, -70, -78, -124, -155, -169, -160, -132, -125, -55, -33, -52, -64, -48, -13, 10, 7, -20, 59, 25, 37, -2, -10, 3, -21, -11, 16, -61, -53, -44, -19, -126, -194, -214, -188, -144, -93, -30, -45, -141, -215, -248, -236, -189, -149, -68, -15, --73, -50, -60, -33, 60, 32, 52, 97, 99, 77, 52, 64, 21, -57, -36, 101, -102, -165, -204, -223, -253, -193, -118, -110, -96, --101, -215, -210, -120, -70, -43, -71, -76, -110, -59, 6, -43, -27, 24, 24, -30, 37, 62, 27, 12, -27, -86, -127, -42, 105, -136, -190, -133, -159, -24, 258, 88, 11, 61, -91, -90, 18, 53, 34, -48, -98, -148, -185, -124, -101, -35, -1, -2, 14, -5, -18, 50, 41, 11, -32, -24, 22, 106, 153, 21, -208, -238, 79, 228, 9, -199, -422, -448, -335, -40, -134, -143, -124, -159, -159, --130, -92, -42, 11, -19, -49, -26, -16, -13, 2, 26, 20, -1, -19, -14, 2, 49, 47, 26, -60, -96, -18, -1, -62, -138, --200, -229, -345, -279, -208, -51, 21, 82, 68, 87, 75, 41, -37, -95, -115, -118, -100, -67, -30, -49, -53, -50, -41, -19, -32, --32, -18, -21, -3, -5, 20, -4, -10, -33, 127, 9, -68, -33, -48, -64, -65, -27, -29, -46, -98, -98, -100, -90, -33, 2, -11, 24, 8, -11, 9, -25, -30, -34, -42, -43, -14, 7, 24, 1, 3, 8, 28, 48, 75, 28, -49, -116, -160, -125, -123, --100, -93, -101, -29, 13, 36, 13, -3, -18, -19, -17, -9, -7, 2, 28, 2, -27, -55, -60, -54, -47, -53, -59, -63, -74, --77, -71, -88, -121, -139, -162, -49, -45, -57, -46, -49, -46, -40, -39, -28, -25, -13, -5, 7, 21, 19, 19, 17, 9, -8, --3, -1, -21, -43, -42, -39, -44, -51, -78, -82, -95, -97, -117, -103, -88, -70, -63, 25, -35, -41, -50, -59, -69, -81, -92, --78, -63, -49, -33, -20, -7, -8, -7, -5, -3, 3, -5, 5, -23, -33, -23, -29, -48, -51, -50, -37, -50, -50, -38, -39, --21, -26, -40, -19, -39, -32, -40, -44, -48, -51, -58, -50, -46, -42, -39, -35, -29, -30, -29, -28, -29, -27, -30, -21, 11, -64, -36, 6, 66, 65, 60, 53, 54, 52, 47, 4, -39, 62, 17, -43, 51, -13, 78, 41, 45, 38, 44, 49, 53, 56, -58, 59, 59, 57, 52, 49, 48, 47, 48, 41, 72, -23, -85, -148, 4, -73, -125, -134, -132, -109, -126, -129, -125, -66, 24, --135, -82, -88, 64, 52, 38, 27, 37, 43, 54, 65, 76, 84, 92, 90, 73, 60, 50, 49, 41, 47, 41, -97, -6, -27, --16, -18, 26, 24, 28, 22, 42, 50, 22, 32, -9, -23, 45, 1, 49, 64, 27, 13, 22, 41, 71, 92, 111, 112, 122, -110, 75, 61, 46, 49, 36, 54, 12, -45, -36, -47, -9, -27, 48, -12, 49, 49, 58, 20, 22, 15, 16, -31, 32, 8, -63, 66, 22, 0, 8, 9, 46, 86, 129, 154, 191, 189, 125, 81, 44, 37, 15, 32, 12, -64, -15, -74, -18, 0, 79, -44, 42, 119, 105, 95, 65, 82, 36, -34, 37, 9, 35, 90, 37, -5, 5, 84, 207, 195, 189, 183, 34, -19, -21, 27, -61, 119, 99, 107, 31, -49, 20, -4, 43, 26, -33, 55, 74, 15, 14, -26, -83, -98, -37, 89, 78, -147, 20, -8, 53, -260, 136, 55, 68, -40, -34, 38, 64, 51, -8, 20, 40, 86, 48, 47, -8, -41, -12, 17, 31, 51, 54, 35, 2, -36, --12, 33, 122, 134, 43, -188, -130, 19, 236, 11, -106, -98, -98, 84, 429, 258, 162, 129, 173, 203, 208, 188, 127, 62, 20, -44, 46, 26, 33, 6, 37, 23, 3, -11, -3, 11, 48, 37, 4, -65, -78, -44, -37, -56, -124, -11, 60, 164, 128, 87, -111, 64, 95, 109, 133, 130, 98, 68, 42, 41, 18, 2, -33, -73, -43, -37, -38, -29, -13, -21, -26, -15, -16, 8, 21, -21, 29, -3, 0, -15, 56, 249, 271, 280, 245, 232, 234, 176, 138, 102, 49, 21, 12, 16, 21, 34, 19, 32, 37, -1, -6, -28, -34, -33, -29, -1, 30, 27, 19, 7, 5, 26, 41, 27, 44, -183, -64, 6, 4, 30, 61, 86, 114, 74, 54, -50, 53, 56, 50, 58, 63, 66, 64, 46, 12, -9, -28, -62, -39, -35, -38, -38, -47, -30, -41, -42, -33, -54, -72, -120, --109, -40, 5, 27, 25, 36, 44, 60, 84, 83, 83, 78, 69, 59, 49, 50, 47, 47, 41, 47, 33, -7, -19, -35, -30, --41, -29, -59, -46, -87, -78, -104, -106, -102, -102, -112, -62, -56, 10, 15, 21, 29, 36, 40, 42, 34, 28, 26, 22, 17, -10, 14, 16, 20, 22, 23, 34, -9, 18, 11, -5, -16, -6, 0, -3, -21, -2, -1, -16, -8, -19, -13, 6, -2, 41, -28, 32, 31, 32, 33, 37, 36, 34, 31, 28, 26, 24, 26, 26, 26, 28, 26, 38, 3, -34, -76, 9, -40, -89, -89, --86, -77, -83, -81, -78, -43, 6, -73, -42, 34, -40, 41, -64, -34, -38, -35, -41, -43, -46, -40, -38, -37, -34, -34, -37, --44, -47, -48, -46, -40, -63, 33, 75, 78, 15, 78, 92, 93, 95, 92, 102, 102, 98, 78, 10, 86, 93, 100, -34, -37, --28, -26, -39, -47, -56, -48, -40, -32, -20, -22, -36, -61, -71, -71, -61, -66, -41, 55, -26, -16, -1, 16, 9, -7, 3, -47, 4, -10, 19, 8, 31, 25, -11, 56, -24, -49, -28, -29, -51, -57, -77, -49, -31, -32, -4, -9, -27, -72, -90, -92, --79, -91, -25, 4, -23, -42, -13, 20, 21, 28, -10, 84, 20, 50, 25, 30, 31, 21, 31, 76, -13, -23, 9, 9, -14, --48, -93, -55, -32, -19, 38, 46, -4, -88, -128, -133, -116, -123, -49, -5, -75, -45, -40, -22, 48, 25, 42, 97, 103, 74, -61, 60, 37, -25, 16, 107, -65, -126, -137, -167, -175, -101, 5, -30, -35, -24, -173, -201, -149, -72, -36, -74, -39, -60, -3, -35, -33, -2, 28, 31, -31, 61, 76, -1, 4, -35, -74, -83, 12, 124, 135, -68, -45, -134, 9, 245, 163, 102, 105, -45, --66, -6, 83, 81, -25, -60, -85, -77, -44, -64, -26, -11, -13, 28, 0, 20, 42, 21, -13, -47, -18, 36, 98, 119, -12, --184, -165, 13, 166, -59, -184, -245, -309, -183, 162, -30, -77, -42, -85, -78, -40, -18, 4, 31, 3, -36, 15, 28, 7, 23, -32, 15, 2, -22, -17, 8, 34, 19, -13, -38, -67, 1, -61, -21, -84, -66, -24, -73, -37, -29, 10, 50, 115, 147, 142, -123, 80, 18, -42, -75, -83, -88, -54, -30, -48, -46, -36, -28, -17, -23, -21, -20, -20, 0, -8, 15, 3, 12, -4, 107, -51, 64, 117, 97, 104, 88, 81, 78, 64, 60, 20, -5, -16, 1, 16, 16, 25, 12, 13, 28, -18, -39, -41, -40, -34, -8, 25, 35, 13, 18, 23, 46, 64, 68, 58, -15, -44, -66, -36, -45, -43, -45, -39, -8, 8, 19, 9, 15, 18, 24, -19, 5, 3, -4, 8, -16, -37, -35, -36, -38, -44, -48, -46, -43, -39, -34, -27, -34, -53, -80, -79, -27, -33, -53, -38, --40, -26, -14, -4, 9, 17, 27, 24, 22, 24, 20, 19, 16, 11, -10, 2, 14, -10, -33, -35, -28, -35, -35, -61, -52, --79, -79, -101, -91, -80, -67, -55, 31, -11, -17, -17, -21, -26, -34, -40, -39, -36, -30, -22, -13, -2, -2, -1, 0, 2, -3, 2, 28, -3, 0, 0, 0, -16, -25, -19, -8, -27, -36, -26, -25, -7, -5, -21, 18, -30, -20, -25, -27, -28, -29, --31, -28, -27, -26, -25, -25, -23, -23, -22, -21, -21, -18, -27, 16, 46, 58, 4, 44, 58, 58, 54, 45, 50, 49, 43, -34, -4, 48, 45, -28, 0, -67, 21, 0, -2, -5, -12, -12, -7, -2, 2, 5, 5, 4, 2, -3, -5, -6, -5, -6, -14, -75, -93, -59, -57, -87, -49, -59, -59, -43, -63, -66, -62, -84, -45, -50, -90, -68, 0, 17, -3, -9, -36, -43, -28, --14, 1, 11, 23, 24, 14, -4, -19, -23, -30, -15, -27, -82, -37, -65, -32, -30, -20, -14, -23, -24, -11, 6, -3, -5, --25, -39, -1, -40, -5, 30, -11, -16, -72, -81, -45, -17, 12, 18, 32, 27, 7, -18, -37, -40, -45, -22, -39, -76, -58, --65, -22, -32, 14, -16, 28, 22, 32, 0, 12, -2, -1, -32, -6, -8, 23, 64, 15, 2, -94, -140, -99, -51, -1, 31, -74, 89, 48, -23, -72, -88, -99, -60, -54, -80, -35, -82, -19, 3, 65, 34, 39, 123, 99, 89, 78, 68, 21, -14, 18, --90, -86, -30, -77, -108, -128, -70, 48, 68, 97, 137, -2, -52, -37, 5, 34, 80, 50, 38, -35, -66, -1, -4, 27, 17, --33, 73, 83, -5, -7, -48, -91, -75, -20, 65, -12, -114, 24, 37, 61, 226, 112, 38, 41, -53, -49, 1, 78, 72, -40, --43, -61, -50, -56, -31, -58, -57, -33, -1, 17, 37, 41, 16, -20, -51, -5, 42, 98, 83, -23, -202, -129, -40, 99, -108, --218, -277, -373, -234, 143, 108, 100, 86, 42, 23, 31, 60, 64, 63, 28, 40, 16, -1, 17, -1, 13, 4, 1, -19, -10, -15, 24, -1, -44, -54, -49, -39, -76, -29, -84, -68, -90, -102, -68, -44, 57, -8, 24, 64, 72, 73, 56, 10, -35, -47, --57, -43, -49, -77, -58, -46, -34, -24, -18, -10, -21, -22, -18, 8, 13, 9, 12, 19, 17, -42, -100, -27, 9, 49, 49, -61, 90, 77, 58, 24, -7, -26, -37, -10, 10, 27, 16, 19, 14, -21, -22, -42, -46, -37, -28, 9, 36, 17, 14, 4, --2, 26, 35, 16, -24, -113, -98, -28, -11, 13, 27, 36, 32, 40, 42, 45, 23, 13, 8, 13, 17, 25, 28, 19, -2, --29, -46, -70, -46, -35, -43, -42, -43, -14, -17, -14, -10, -17, -41, -82, -93, -83, -41, -23, -30, -23, -18, -5, 10, 16, -20, 25, 29, 34, 37, 36, 34, 36, 20, 16, -7, -28, -27, -33, -32, -38, -31, -47, -43, -75, -72, -96, -104, -111, -121, --134, -96, -30, -9, -3, -1, 4, 5, 5, 3, 6, 11, 16, 20, 20, 18, 20, 21, 23, 24, 29, 29, -3, 5, -12, --16, -32, -37, -32, -40, -48, -35, -28, -36, -27, -25, -24, -11, -41, 1, -5, -5, -5, -4, -2, -1, 1, 2, 1, 1, -3, 4, 4, 5, 5, 5, 4, 15, -30, -48, -33, -34, -58, -42, -45, -46, -41, -50, -51, -51, -62, -42, -34, -55, -7, -22, 72, 12, 19, 21, 17, 22, 24, 22, 28, 29, 27, 29, 29, 30, 22, 19, 16, 17, 14, 9, 62, 51, -30, 64, -61, -11, -5, -2, -1, 6, 7, 11, 62, 66, -13, 64, 54, 44, 25, 33, 24, 35, 37, 31, 42, 46, 45, 54, 55, -55, 31, 20, 13, 14, 0, 20, 10, 5, 17, 20, 29, 39, 32, 46, 64, 44, 31, 45, 39, 38, 46, 45, 75, 31, -18, 32, 11, 35, 51, 38, 73, 82, 64, 84, 82, 89, 44, 23, 10, 4, -12, 5, 11, -4, -22, 20, 30, 34, 30, -18, 73, 21, 40, 43, 34, 42, 37, 60, 94, 52, 43, 62, 35, 71, 74, 46, 93, 104, 88, 133, 162, 159, 79, 31, -3, -14, -46, -20, -24, -51, -50, -9, 3, 45, 29, 36, 98, 98, 74, 72, 58, 46, 7, 64, 60, -7, -32, -38, -76, --52, 28, 158, 108, 90, 111, -55, -123, -124, -40, 6, 3, 47, 47, 53, 31, 6, 30, 33, 30, -30, 80, 88, -11, -5, --48, -69, -43, 39, 110, 94, 1, 52, -26, 68, 200, 203, 160, 107, -6, -34, -7, 100, 113, 13, 1, 6, 59, 46, 5, --20, -26, -20, 27, 11, 28, 36, 6, -30, -52, 3, 53, 83, 68, -38, -156, -94, -40, 39, -134, -153, -27, -96, 11, 280, -149, 90, 79, 68, 79, 102, 105, 84, 57, 35, 10, 45, 52, 27, 31, 29, 8, 2, -18, -11, 18, 15, -10, -45, -18, --30, -2, -71, 10, -12, 85, 173, 234, 209, 151, 74, 68, 112, 170, 160, 145, 110, 72, 32, -1, -17, -44, -37, -43, -45, --38, -22, -12, -13, -9, -10, -20, -17, 4, 1, 9, 18, 38, 22, 23, 52, 161, 203, 206, 242, 239, 210, 191, 174, 196, -133, 92, 61, 41, 31, 20, 23, 21, 32, 23, -11, -43, -46, -35, -17, 20, 36, 35, 28, 31, 33, 53, 60, 35, 58, --29, 25, 58, 72, 69, 53, 43, 60, 32, 15, 8, 14, 34, 50, 61, 56, 31, 26, 3, -16, -33, -41, -23, -21, -28, --39, -38, -30, -14, -1, 9, 17, 16, 13, -15, 0, -23, -22, -28, -14, -7, 13, 30, 48, 55, 61, 62, 49, 34, 23, -21, 22, 23, 18, 3, 8, 12, -8, -24, -28, -27, -31, -35, -44, -42, -64, -71, -85, -83, -81, -83, -55, 0, 11, 10, -20, 24, 27, 27, 31, 22, 14, 11, 8, 9, 10, 11, 9, 7, 7, 4, 9, 23, 11, 20, 7, 8, 4, -3, 1, -1, -9, -19, -20, -14, -7, 3, -1, 25, -6, -3, -2, -1, 2, 5, 10, 6, 4, 2, 0, -3, -5, -5, -4, -4, --3, -2, -7, 28, 30, -5, 24, 29, -13, -11, -13, -16, -12, -11, -14, 14, 13, -17, 20, -4, -48, -62, -49, -39, -46, --44, -60, -63, -60, -53, -49, -48, -45, -45, -44, -51, -53, -56, -55, -49, -53, -67, -33, 55, -68, -31, 56, 50, 49, 51, -41, 39, 41, -33, -70, 60, -25, 10, -54, -23, -36, -36, -83, -100, -90, -77, -64, -57, -42, -37, -37, -62, -78, -87, -87, --75, -78, -19, -51, -66, -27, -18, -40, -35, -47, -34, -43, -33, -12, -26, -15, -23, -34, -32, -48, -20, -39, -34, -123, -149, --131, -99, -70, -68, -45, -43, -40, -82, -104, -115, -107, -97, -69, -64, -55, -58, -20, -9, -9, 2, -3, 12, 1, -3, 8, --5, -2, -7, -18, 14, -13, 38, 19, 17, -125, -195, -185, -138, -101, -80, -27, 3, -4, -99, -157, -185, -177, -144, -101, -64, --60, -66, -17, 7, 45, 27, 38, 102, 86, 72, 79, 47, 14, 6, 6, -89, -158, -158, -185, -199, -228, -185, -75, -53, -13, -49, -79, -125, -90, -47, -13, 3, -6, -32, -58, -27, -13, 11, 13, 12, -29, 82, 86, -12, -23, -67, -90, -49, 10, 58, --28, -63, 10, 39, 60, 164, 109, 63, 40, -52, -64, -25, 90, 98, -35, -84, -135, -154, -119, -91, -80, -43, -35, -9, -4, -14, 29, -2, -38, -55, 8, 52, 65, 30, -86, -193, -135, -59, -73, -209, -274, -347, -467, -413, -167, -41, 25, -1, -89, -137, --122, -60, -2, 48, 31, 12, -19, -15, -3, 4, -3, -11, -4, -22, -12, 16, 0, -30, -70, -27, -16, -24, -64, 11, -5, --65, -139, -240, -179, -121, -15, -45, -14, 42, 43, 44, 38, -27, -82, -113, -111, -87, -63, -57, -62, -52, -28, -16, -19, -3, --14, -25, -17, 3, 1, 0, 0, 45, 26, -22, -166, -228, -189, -144, -85, -47, -16, 11, 12, -5, -16, -28, -45, -11, 10, -12, 16, 4, -11, -26, -48, -51, -53, -39, -19, 14, 30, 14, 16, 14, 9, 32, 33, 19, -47, -3, -64, -33, -3, 7, --7, -23, -50, -7, 12, 18, -9, -21, -21, -16, -16, -16, -12, -14, -17, -40, -53, -54, -48, -40, -46, -43, -32, -4, 4, -12, 14, 22, 3, -16, -46, -94, -78, -72, -70, -61, -57, -49, -47, -37, -33, -23, -11, 1, 13, 10, 12, 15, -4, -23, --39, -32, -30, -34, -35, -33, -37, -36, -49, -58, -68, -79, -95, -102, -113, -118, -102, 6, -27, -23, -25, -26, -30, -33, -36, --24, -12, -2, 7, 13, 19, 16, 13, 12, 10, 14, 5, 4, -15, -30, -25, -36, -55, -56, -62, -57, -59, -56, -52, -44, --28, -30, -31, -53, -45, -40, -43, -42, -41, -39, -40, -36, -34, -32, -30, -27, -22, -24, -24, -24, -25, -24, -23, -41, -29, -21, -56, -39, 18, 14, 10, 6, 2, -2, -6, -46, -66, 13, -34, -50, 55, 40, 66, 47, 52, 45, 52, 56, 57, 63, -64, 60, 61, 62, 66, 59, 56, 51, 51, 43, 60, 30, -18, -109, 53, -5, -93, -90, -88, -81, -84, -84, -75, -4, 60, --91, -13, -22, 79, 65, 63, 46, 59, 65, 69, 82, 86, 80, 88, 94, 104, 84, 71, 58, 49, 40, 43, -55, 12, 13, -18, 18, 36, 41, 48, 35, 45, 45, 42, 40, 17, 29, 63, 42, 54, 68, 59, 33, 57, 78, 86, 122, 130, 105, 118, -120, 143, 105, 83, 62, 44, 39, 9, -15, -7, -14, 33, 18, 33, 16, 38, 30, 16, 9, 38, 18, 30, 26, 52, 65, -85, 99, 87, 47, 73, 84, 89, 141, 153, 125, 163, 204, 237, 168, 113, 66, 26, 1, -17, -58, -26, -55, 20, 30, 47, -37, 33, 88, 81, 71, 77, 52, 38, 30, 77, -35, 4, 23, 7, -22, 8, 77, 220, 185, 178, 215, 56, -36, -73, -11, -39, 89, 116, 132, 70, 6, 44, 49, 29, 19, -26, 86, 91, -8, -15, -62, -74, -17, 38, 72, 16, 18, 113, 96, 107, -130, 184, 160, 78, 8, -18, -6, 96, 121, 40, 34, 45, 103, 67, 42, -27, -38, -23, 7, 14, 28, 31, -8, -43, -49, -23, 61, 61, 9, -69, -147, -50, -71, -123, -204, -143, 47, 10, 75, 205, 262, 235, 142, 159, 160, 164, 162, 124, 68, 56, -51, 37, 37, 31, 25, 16, -4, -4, -11, 2, 22, -1, -32, -66, -5, 7, -24, -45, 37, 62, 166, 225, 323, 263, 190, -86, 34, 48, 117, 125, 124, 109, 85, 64, 34, 16, -10, -32, -61, -46, -35, -14, -1, -10, 1, -5, -19, -11, 6, 14, -1, 26, 58, 43, -71, -19, 113, 138, 172, 242, 267, 238, 217, 203, 225, 165, 127, 93, 56, 35, 23, 17, 19, 24, -9, --19, -45, -49, -30, 0, 20, 35, 26, 37, 35, 30, 43, 39, 2, 23, -42, 59, 133, 132, 140, 115, 103, 115, 56, 21, -4, 15, 33, 48, 62, 61, 41, 36, 8, -32, -41, -41, -27, -22, -28, -38, -27, -14, 14, 30, 42, 49, 54, 59, 34, -43, -45, -27, -10, 0, 21, 36, 50, 65, 63, 64, 57, 46, 32, 19, 19, 20, 25, 15, 9, -2, -13, -22, -28, -29, --33, -32, -42, -34, -49, -55, -70, -74, -80, -90, -103, -67, -39, 11, 19, 31, 40, 49, 58, 70, 59, 49, 42, 34, 27, -20, 19, 15, 12, 9, 4, 10, 0, 10, 12, -5, -8, -3, -5, -6, -17, -12, -18, -29, -19, -21, -11, 1, -2, 5, -2, 8, 12, 18, 23, 31, 24, 21, 17, 14, 11, 8, 7, 7, 6, 7, 6, 7, 8, -17, -65, 9, -21, -78, -77, --76, -74, -74, -73, -74, -34, -2, -74, -32, 5, -53, -7, -72, -42, -49, -45, -59, -63, -64, -56, -53, -55, -51, -49, -44, --53, -57, -60, -60, -52, -74, -12, 40, 101, -24, 41, 100, 102, 101, 90, 95, 96, 98, 35, -35, 106, 52, 78, -53, -30, --29, -28, -66, -82, -84, -72, -65, -66, -51, -43, -34, -61, -75, -88, -84, -85, -74, 35, -37, -30, -2, 11, -24, -23, -29, --11, -36, -37, 1, -19, 9, 14, -28, 12, -47, -38, -27, -24, -89, -112, -122, -84, -67, -79, -51, -44, -17, -70, -92, -114, --102, -112, -60, -26, -28, -29, 2, 24, -10, 25, -18, 11, -22, 2, 14, 2, 9, 30, 1, 54, -16, 23, 43, 40, -60, --118, -151, -103, -89, -100, -43, 0, 31, -66, -125, -168, -161, -160, -104, -39, -69, -36, -1, 16, 28, 27, 36, 62, 66, 51, -70, 27, 16, 28, 18, -38, -145, -199, -202, -203, -217, -176, -66, -72, -45, 18, -107, -163, -138, -90, -45, -46, -14, -30, -10, -38, 1, 36, 6, 10, -20, 78, 83, -8, -26, -72, -80, -21, 42, 65, -4, 14, 20, 31, 55, 91, 132, 121, 61, -28, --63, -43, 87, 118, 13, -67, -124, -143, -99, -90, -65, -15, -23, -9, -19, -4, 20, -19, -50, -50, 18, 55, 33, -16, -123, --168, -107, -64, -236, -266, -246, -257, -334, -342, -267, -53, 25, -51, -120, -162, -143, -86, -21, 32, 32, -10, -32, -10, -9, 19, --4, -17, -11, -16, -4, 15, -14, -44, -73, 8, 18, -18, -30, 63, 98, 32, -37, -153, -117, -82, -53, -44, -17, 48, 54, -55, 52, -10, -60, -108, -106, -96, -64, -36, -57, -49, -20, -6, -13, -2, -8, -23, -12, 0, -3, -5, -3, 62, 37, -1, --134, -239, -202, -167, -63, -18, -13, 29, 40, 51, 38, 25, 9, 13, 17, 4, 15, -8, -27, -22, -58, -53, -54, -37, -4, -14, 19, 17, 23, 29, 28, 37, 34, 27, -24, 88, 19, 16, 43, 32, -3, -34, -62, -26, -11, -8, -25, -29, -23, -14, --16, -27, -29, -33, -28, -40, -47, -28, -40, -42, -46, -35, -14, 7, 26, 39, 41, 57, 50, 47, 24, -73, -82, -85, -67, --53, -47, -44, -51, -45, -42, -36, -26, -16, -5, -9, -7, -5, -20, -44, -48, -27, -33, -39, -41, -32, -44, -32, -53, -41, --61, -59, -75, -79, -86, -83, -83, 19, -33, -30, -31, -34, -38, -39, -36, -27, -18, -10, -3, 3, 11, 5, 0, -5, -9, --9, -19, 6, -26, -31, -26, -29, -49, -57, -58, -46, -63, -67, -57, -53, -31, -30, -42, -37, -66, -54, -56, -54, -51, -49, --49, -47, -46, -44, -41, -39, -35, -38, -38, -39, -41, -39, -47, -28, 0, 41, -44, -6, 41, 38, 33, 24, 24, 21, 14, --18, -57, 27, -6, -64, 39, -20, 59, 34, 37, 31, 32, 33, 37, 43, 45, 41, 43, 44, 49, 43, 41, 36, 35, 29, -51, -27, -68, -97, 0, -58, -91, -92, -93, -87, -98, -99, -88, -60, 7, -85, -69, -63, 51, 59, 47, 34, 26, 26, 35, -51, 57, 49, 61, 71, 86, 69, 54, 37, 24, 24, 12, -83, -5, -13, 3, -1, 6, 19, 12, -16, 9, 21, 17, 12, --12, -1, 37, -11, 30, 68, 42, 28, 12, 18, 37, 75, 87, 64, 78, 82, 113, 82, 61, 35, 18, 25, -17, -49, -23, --14, 25, 2, 15, 2, 31, -22, -3, -25, 19, -8, 5, 9, 17, 19, 64, 111, 80, 51, 13, -1, 17, 74, 92, 66, -104, 152, 202, 141, 82, 24, -16, -19, -49, -84, -16, -46, 34, 46, 44, 43, 31, 61, 55, 56, 71, 34, 16, 43, 55, --123, -44, -11, -32, -42, -29, 18, 150, 146, 166, 223, 93, -2, -47, -19, 31, 115, 123, 144, 61, -3, 61, 52, 15, 3, --16, 76, 82, -2, -21, -67, -79, -7, 25, 34, -63, 18, 115, 159, 100, 59, 133, 127, 44, 2, -26, -26, 71, 109, 60, -24, 10, 38, 12, 22, -42, -35, -20, -18, 4, 16, 23, -21, -50, -42, 28, 54, 33, -39, -102, -153, -31, -96, -287, -256, --161, -44, -68, -47, -22, 232, 267, 110, 120, 100, 92, 106, 93, 58, 53, 60, 3, 1, 18, 15, 0, -16, -14, -5, 12, -18, -14, -43, -73, 7, 36, -55, -18, 75, 134, 164, 131, 160, 115, 82, 40, -29, -35, 26, 55, 71, 80, 56, 39, 11, --3, -13, -42, -70, -51, -36, -13, 1, -6, 3, -6, -19, -4, 8, 21, -3, 22, 61, 59, -120, -119, -58, -43, 23, 105, -153, 150, 151, 146, 150, 116, 95, 77, 46, 28, 19, 7, 3, -8, -46, -40, -50, -51, -28, 8, 12, 23, 13, 34, 28, -22, 23, 14, -12, -29, -12, 51, 128, 124, 135, 111, 97, 91, 50, 23, 7, 6, 7, 11, 25, 29, 25, 20, 1, -37, --40, -38, -38, -33, -34, -39, -20, -1, 34, 48, 59, 64, 71, 75, 56, 56, -73, -46, -16, -9, 20, 24, 29, 34, 25, -22, 13, 14, 13, 10, 9, 9, 14, -1, -3, -25, -44, -41, -40, -38, -43, -41, -48, -34, -56, -48, -65, -61, -74, -92, --111, -81, -57, -13, 0, 8, 17, 26, 38, 52, 49, 46, 42, 36, 28, 19, 16, 11, 7, 2, -1, 0, -23, -8, -16, --27, -36, -32, -31, -37, -50, -38, -38, -50, -40, -42, -36, -18, -43, -9, -14, -7, -2, 4, 8, 16, 11, 9, 7, 5, -4, 3, 2, 0, -1, -1, -4, 2, -29, -57, -77, -28, -64, -88, -90, -90, -85, -91, -91, -92, -73, -38, -84, -71, -11, --14, 47, -34, -9, -10, -9, -13, -15, -19, -11, -9, -15, -10, -8, -1, -10, -14, -19, -18, -17, -35, 42, 68, 55, 36, -72, 57, 64, 63, 49, 62, 64, 69, 65, 24, 63, 78, 82, -4, 1, 12, 10, -2, -9, -20, -5, -5, -17, -3, 6, -23, 1, -11, -28, -28, -41, -26, 37, -6, 17, 24, 33, 11, 10, 12, 18, -4, -13, 23, 5, 25, 46, 9, 49, -9, --11, 16, 11, -2, -6, -35, 9, 14, -17, 11, 19, 60, 12, -9, -39, -37, -59, -26, 7, 2, 8, 31, 46, 5, 36, --12, 5, -32, 0, 22, 6, 19, 57, 29, 75, 15, 38, 76, 67, 48, 25, -33, 21, 16, -30, 23, 73, 133, 59, 4, --55, -68, -104, -74, -30, -51, -4, 25, 32, 22, 34, 32, 20, 40, 28, 54, 10, 17, 50, 42, -7, -71, -143, -129, -124, --111, -66, 44, 12, 23, 74, -49, -131, -145, -102, -46, -26, 35, 47, 80, 90, 36, 57, 4, 6, -6, 63, 71, -3, -18, --62, -62, 2, 56, 63, 10, 88, 63, 43, 50, 28, 159, 179, 86, 11, -47, -58, 64, 119, 83, -5, -45, -36, -20, -32, --28, 8, -5, -8, -20, -10, 16, -29, -53, -38, 20, 47, 10, -47, -127, -135, -39, -90, -355, -263, -154, -75, -99, -125, -173, -57, 107, -26, -40, -61, -45, -20, 11, 25, 32, -6, -15, 9, 2, 32, 3, -16, -19, -6, 9, 13, -20, -43, -61, 35, -43, -34, -13, 119, 193, 166, 126, 71, 49, 30, -31, -15, -3, 49, 74, 82, 82, 41, 8, -39, -49, -64, -51, -31, -45, --35, -10, 3, -3, -4, -5, -17, -2, 3, 2, -1, 9, 61, 59, -15, -58, -111, -82, -49, 50, 89, 73, 104, 115, 142, -117, 98, 83, 50, 29, 3, 7, -15, -31, -22, -52, -54, -50, -31, 8, 10, 9, 20, 30, 38, 42, 32, 27, 24, 7, -114, 97, 91, 101, 82, 42, 13, 2, -2, -9, -18, -18, -12, -3, 9, 7, -12, -19, -30, -34, -34, -33, -10, -29, -38, --40, -20, 7, 24, 47, 61, 64, 76, 84, 85, 88, -41, -58, -59, -33, -12, -4, -4, -10, -13, -13, -15, -14, -13, -11, --15, -15, -14, -22, -40, -37, -22, -35, -43, -44, -38, -49, -36, -47, -30, -46, -39, -46, -50, -56, -57, -55, -4, -29, -26, --21, -21, -20, -13, -3, -3, -3, -3, -3, -2, 2, -4, -11, -18, -22, -27, -32, -4, -27, -22, -25, -22, -32, -41, -39, --33, -51, -61, -56, -52, -37, -31, -41, -15, -54, -44, -42, -38, -33, -31, -28, -31, -31, -30, -30, -30, -29, -32, -32, -34, --35, -35, -46, -9, 9, 10, -18, 8, 8, 8, 4, -4, -1, -2, -8, -7, -30, -5, 1, -46, -5, -54, 6, -2, -3, --3, -13, -15, -13, -5, -2, -6, -2, -1, 5, -1, -3, -8, -9, -9, 0, -57, -58, -11, -41, -54, -16, -20, -23, -24, --34, -35, -26, -60, -43, -7, -59, -39, -7, 20, 10, 8, -25, -35, -29, -11, -5, -13, 2, 14, 29, 15, 0, -18, -28, --23, -38, -55, -25, -30, -7, -9, -24, -11, -28, -50, -36, -20, -7, -20, -24, -13, -7, -41, -16, 28, 8, 13, -46, -63, --53, -10, 6, -15, 6, 13, 43, 16, -3, -30, -37, -30, -48, -59, -30, -9, 13, 1, -7, -1, 3, -53, -31, -45, 1, --27, -15, 10, -16, -9, 15, 80, 62, 61, -40, -87, -87, -28, -10, -35, 10, 57, 109, 57, 0, -60, -86, -77, -90, -83, --21, -16, 37, 47, 34, 42, 28, 19, 22, 26, 53, 6, -7, 53, 18, -152, -106, -103, -117, -99, -112, -89, 12, 38, 87, -155, 58, -28, -59, -61, -13, 72, 78, 95, 50, 24, 55, 43, -5, -11, 0, 54, 60, 1, -20, -59, -68, -3, 16, 12, --101, 40, 83, 137, 52, -1, 93, 109, 37, -4, -47, -65, 32, 87, 77, -5, -55, -66, -64, -28, -45, -13, -10, -34, -13, --5, 14, -29, -50, -32, 20, 37, 5, -69, -129, -150, -16, -134, -402, -253, -158, -174, -211, -233, -266, 91, 184, 20, 0, -44, --48, -14, 19, 34, 35, 35, -27, -25, 2, 9, -13, -23, -23, -1, 17, 11, -23, -45, -61, 20, 47, -76, -25, 127, 199, -117, -11, -86, -93, -67, -25, -72, -87, -56, -4, 26, 48, 15, -11, -36, -46, -39, -52, -60, -49, -32, -12, 1, -1, -1, --11, -15, 2, 8, 16, 2, 13, 50, 78, -105, -175, -227, -211, -140, -66, -11, 17, 49, 61, 50, 49, 44, 41, 28, 18, -8, -5, -21, -47, -67, -62, -57, -50, -29, 7, 2, 7, 3, 21, 19, 18, 5, -3, -7, -62, 52, 36, 75, 75, 80, -62, 49, 26, 25, 17, 9, -7, -22, -28, -19, -14, -10, -11, -14, -29, -31, -33, -41, -43, -40, -37, -12, 12, 42, 54, -62, 61, 69, 68, 64, 53, -84, -65, -40, -32, -7, -10, -13, -20, -28, -31, -33, -22, -11, -2, -6, -8, -7, -21, -26, --47, -58, -52, -50, -47, -48, -48, -47, -38, -50, -39, -47, -42, -57, -77, -93, -80, -48, -44, -33, -32, -28, -23, -13, -3, -3, 9, 11, 12, 9, 7, 1, -4, -9, -13, -13, -19, -35, -32, -45, -45, -55, -59, -58, -67, -73, -68, -66, -72, -64, --58, -57, -47, -68, -41, -40, -37, -33, -29, -26, -23, -23, -23, -21, -20, -19, -17, -19, -20, -22, -24, -26, -23, -55, -64, --43, -59, -71, -48, -52, -54, -53, -60, -61, -64, -78, -69, -49, -73, -39, 34, 58, 28, 31, 35, 33, 36, 37, 33, 42, -42, 34, 39, 40, 47, 41, 38, 33, 32, 26, 25, 54, 37, -30, 63, 45, -26, -19, -20, -28, -20, -17, -7, 39, 58, --19, 41, 28, 50, 43, 54, 48, 56, 58, 46, 63, 61, 42, 54, 64, 83, 71, 61, 43, 34, 17, 24, -4, 18, 43, -36, 36, 33, 34, 37, 23, 18, 13, 34, 22, 21, 52, 42, 46, 31, 37, 57, 48, 69, 80, 53, 100, 99, 59, 81, -87, 128, 98, 81, 49, 34, 13, 4, 10, 17, 32, 48, 44, 18, 26, 2, -16, -35, -18, 24, -1, 16, 59, 39, 56, -51, 70, 99, 88, 116, 122, 73, 130, 119, 55, 96, 146, 217, 182, 135, 70, 27, -24, -40, -41, -18, 21, 52, 48, 24, -40, 23, -14, 8, 5, 38, -5, 9, 68, 53, -32, -6, -52, -37, -23, 0, 40, 142, 119, 131, 171, 64, -40, -103, -83, --27, 37, 98, 137, 146, 102, 71, 60, -1, -4, 11, 43, 50, 1, -7, -42, -39, 19, 49, 42, -14, 131, 114, 74, 37, --27, 157, 200, 95, 39, -32, -77, 21, 94, 134, 59, 39, 71, 47, 30, 9, 17, 10, -10, -11, -8, 12, -32, -46, -25, -18, 33, -4, -72, -117, -103, 39, -157, -404, -200, -39, 70, 73, 52, -32, 170, 194, 45, 70, 63, 67, 61, 52, 26, 33, -20, 13, 25, 19, 32, 5, -14, -24, 4, 20, 11, -21, -36, -36, 42, 46, -60, -45, 167, 248, 242, 212, 230, 162, 109, -10, 1, -9, 15, 66, 90, 95, 82, 68, 38, 15, -17, -33, -37, -31, -17, -1, 8, 7, -4, -6, -10, 6, 7, 13, -11, 26, 49, 91, -61, -14, 15, 32, 64, 134, 162, 144, 158, 168, 194, 163, 140, 127, 70, 33, 6, -6, -22, -32, -35, --45, -55, -43, -24, 12, 4, 3, 16, 27, 34, 41, 16, 10, 5, 12, 82, 128, 142, 131, 120, 96, 83, 89, 43, 12, --5, 3, 11, 16, 29, 28, 8, 1, -13, -30, -24, -20, -9, -22, -31, -28, 0, 26, 42, 60, 69, 69, 76, 92, 92, -111, -23, -29, -19, 3, 25, 32, 32, 33, 24, 23, 17, 10, 2, -5, -10, -13, -15, -18, -23, -22, -25, -38, -45, -43, --43, -46, -41, -34, -26, -27, -22, -16, -24, -34, -44, -33, -46, -29, -23, -14, -9, 0, 12, 27, 19, 11, 4, -2, -6, --8, -12, -17, -23, -26, -33, -31, -22, -23, -16, -26, -23, -20, -26, -26, -32, -40, -51, -56, -52, -48, -40, -38, -12, -29, --26, -20, -16, -11, -8, -3, -8, -9, -10, -11, -13, -15, -17, -18, -20, -21, -22, -28, -6, -11, -45, -4, -9, -50, -50, --51, -53, -51, -50, -53, -23, -14, -56, -22, -19, -35, -38, -43, -27, -31, -26, -41, -45, -46, -37, -34, -39, -34, -32, -27, --32, -34, -38, -39, -35, -45, -38, -2, 74, -39, -3, 62, 61, 56, 46, 45, 45, 52, -12, -50, 73, 0, 20, -44, -13, --13, -6, -46, -61, -65, -48, -43, -54, -38, -27, -13, -24, -35, -51, -57, -57, -63, 1, -28, -19, 0, 3, -29, -25, -41, --47, -56, -47, -13, -34, -15, 4, -32, -32, -43, -13, -9, 8, -61, -89, -101, -57, -42, -63, -37, -30, -1, -25, -40, -66, --67, -72, -55, -37, -20, 7, 10, 16, -17, 5, -27, -54, -55, -46, -5, -30, -18, 30, -25, -7, -19, 40, 54, 75, -35, --91, -125, -73, -66, -95, -51, -8, 43, 7, -39, -94, -111, -114, -103, -57, -29, 25, 39, 42, 22, 33, 20, -25, -12, -10, -30, -23, -21, 63, -7, -116, -128, -172, -166, -131, -160, -152, -88, -45, 18, 81, 23, -52, -85, -101, -63, -3, 23, 39, 57, -74, 42, 29, -24, -20, 18, 29, 33, -1, -13, -40, -39, 9, 23, 7, -87, 90, 56, 63, -8, -53, 78, 119, 58, 3, --63, -107, -9, 62, 94, -12, -81, -113, -94, -59, -23, 18, 6, -31, -23, -23, 3, -34, -42, -23, 9, 19, -19, -89, -142, --123, 13, -196, -437, -191, -95, -211, -256, -307, -353, -51, 62, -42, -97, -149, -144, -107, -44, 8, 15, 4, -29, -20, -5, 10, --17, -24, -29, 2, 17, 6, -26, -37, -30, 27, 35, -70, -82, 179, 235, 80, -78, -210, -193, -141, -73, -79, -91, -84, -25, -10, 31, -2, -34, -57, -68, -60, -51, -36, -37, -21, -6, 1, 4, -5, -13, -10, 4, 4, 9, 16, 13, 41, 100, -57, --150, -267, -249, -203, -142, -97, -64, -10, 17, 10, 24, 25, 29, 20, 11, -4, -16, -43, -71, -66, -72, -62, -43, -27, 1, --5, -6, -2, 7, 13, 21, -4, -10, 3, -61, 109, 42, 28, 35, 31, 21, 11, -12, 11, 14, 13, -8, -28, -40, -35, --34, -36, -35, -27, -18, -21, -25, -32, -42, -38, -28, 0, 25, 41, 50, 53, 48, 58, 57, 66, 52, -62, -63, -53, -42, --28, -34, -42, -53, -54, -53, -46, -35, -22, -10, -18, -24, -28, -37, -47, -55, -52, -51, -52, -49, -44, -48, -38, -37, -31, --24, -17, -13, -25, -40, -48, -53, -33, -66, -60, -63, -63, -62, -57, -53, -43, -35, -29, -23, -18, -12, -18, -22, -26, -29, --28, -37, -32, -46, -55, -49, -54, -65, -68, -74, -73, -80, -82, -80, -77, -65, -66, -68, -64, -65, -58, -58, -55, -54, -54, --55, -51, -49, -45, -42, -39, -35, -38, -39, -41, -44, -45, -48, -55, -41, -1, -63, -45, 1, -3, -7, -11, -15, -18, -23, --52, -71, -10, -46, -58, 52, 24, 61, 46, 52, 48, 52, 54, 52, 60, 60, 53, 57, 58, 63, 60, 58, 54, 51, 43, -57, 21, -18, -77, 42, -10, -76, -74, -75, -76, -79, -77, -64, -15, 43, -67, -21, -35, 64, 61, 65, 60, 67, 70, 65, -82, 81, 62, 72, 82, 100, 98, 90, 74, 56, 44, 36, -47, 21, 35, 28, 21, 27, 31, 28, -1, 11, 16, 24, 15, -0, 32, 44, 9, 40, 66, 68, 63, 78, 87, 75, 118, 120, 86, 100, 104, 136, 127, 114, 87, 60, 49, 8, -10, 11, -36, 44, 24, 16, 3, 7, -43, -39, -43, 15, -16, 0, 42, 21, 11, 59, 91, 98, 93, 108, 115, 93, 143, 137, 83, -106, 150, 217, 218, 182, 123, 62, 20, -27, -58, 9, 35, 66, 57, 29, 38, 11, -35, -25, -17, 22, -22, -9, 75, 39, --91, 5, -1, 7, 25, 36, 58, 133, 154, 190, 227, 169, 63, -43, -54, -16, 77, 119, 168, 147, 79, 81, 39, -16, -20, -24, 22, 24, -1, -2, -22, -15, 30, 32, 8, -63, 140, 132, 91, 9, -75, 114, 165, 81, 46, -29, -102, -27, 52, 138, -87, 72, 101, 53, 51, 27, 19, 18, -15, 0, -6, 3, -32, -35, -15, 11, 14, -19, -95, -111, -79, 94, -244, -405, -122, -41, 80, 95, 82, 15, 175, 205, 104, 115, 99, 93, 75, 54, 22, 28, 44, 30, 26, 28, 18, -3, -15, -28, 10, 23, -7, -19, -26, -9, 23, 26, -68, -120, 196, 241, 209, 161, 201, 132, 87, 23, -15, -40, -35, 26, 63, 75, 82, 78, 71, -40, 12, -19, -42, -18, 0, 5, 9, 11, -4, -9, -5, 6, 8, 23, 29, 42, 41, 123, -103, -29, 37, 44, 74, 112, -135, 132, 142, 154, 165, 144, 125, 116, 62, 25, 5, -22, -33, -41, -57, -46, -57, -36, -18, 6, -4, -3, 1, 14, 18, -29, -4, -10, -17, -16, 36, 101, 129, 113, 119, 117, 124, 138, 80, 41, 22, 26, 26, 20, 27, 27, 13, 10, 0, -21, --17, -16, -21, -23, -24, -15, 17, 37, 51, 58, 59, 56, 59, 73, 71, 88, -18, -9, 12, 20, 35, 36, 36, 40, 32, -33, 30, 21, 12, 4, -3, -11, -16, -17, -13, -20, -37, -42, -45, -41, -44, -39, -41, -18, -23, -5, -4, 13, 1, -14, --31, -17, -79, -37, -29, -21, -12, -1, 12, 24, 16, 7, 0, -6, -11, -16, -18, -20, -23, -25, -30, -26, -39, -23, -22, --32, -34, -25, -26, -30, -45, -40, -47, -60, -54, -60, -54, -40, -28, -14, -17, -11, -8, -5, -3, 3, 0, -1, -2, -3, --5, -7, -8, -10, -11, -12, -15, -14, -21, -43, -79, -14, -42, -85, -86, -85, -81, -84, -83, -83, -51, -21, -85, -54, -7, --28, 10, -47, -21, -23, -17, -28, -32, -36, -28, -26, -31, -26, -24, -20, -23, -25, -28, -31, -28, -47, 10, 50, 92, 1, -49, 81, 84, 80, 65, 73, 75, 82, 40, -13, 92, 55, 61, -33, -14, -3, 7, -19, -30, -43, -30, -30, -42, -30, -21, --7, -12, -19, -31, -38, -48, -44, 40, -10, 14, 18, 22, -9, -13, -22, -17, -42, -43, -1, -23, 5, 32, -21, 4, -31, --19, 7, 24, -17, -38, -70, -31, -23, -44, -21, -13, 14, -3, -15, -37, -44, -63, -35, -2, 3, 27, 20, 34, -13, 12, --41, -39, -66, -39, 1, -21, -9, 51, -9, 13, -18, 21, 63, 90, 32, -5, -65, -28, -35, -71, -40, -1, 52, 41, 10, --35, -62, -94, -78, -24, -24, 57, 45, 38, 14, 22, 7, -56, -42, -41, 9, -44, -25, 68, -7, -53, -89, -157, -135, -105, --127, -126, -92, -47, 15, 60, 44, -26, -97, -111, -86, -55, -3, 20, 81, 108, 32, 14, -38, -26, 31, 9, 7, -7, -6, --17, 0, 29, 38, 11, -47, 148, 49, -6, -49, -95, 75, 134, 85, 25, -62, -137, -44, 36, 104, 19, -39, -64, -56, -45, -14, 42, 23, -14, -18, -27, -7, -34, -30, -14, 1, 1, -40, -102, -138, -76, 59, -265, -411, -109, 0, -123, -136, -190, -257, --102, -10, -24, -96, -144, -132, -114, -62, -11, 4, -9, -3, 8, 2, 11, -15, -20, -31, 4, 15, 3, -21, -23, 3, 16, -7, -39, -158, 211, 221, 74, -32, -127, -128, -101, -69, -46, -54, -59, -10, 23, 34, 15, -11, -25, -45, -50, -35, -12, -17, --2, 3, 4, 7, -8, -11, -6, 2, 1, 10, 36, 27, 43, 127, -22, -66, -155, -139, -130, -86, -63, -46, 5, 38, 45, -55, 49, 47, 29, 11, -12, -27, -54, -72, -55, -68, -63, -34, -21, -5, -8, -14, -6, -4, 11, 27, -5, -8, 4, -37, -120, 59, 17, 28, 24, 21, 19, 15, 28, 26, 23, 9, -3, -17, -16, -22, -37, -35, -28, -11, -14, -19, -19, -32, -29, --14, 13, 36, 36, 42, 40, 34, 43, 47, 61, 56, -16, -32, -34, -23, -23, -26, -33, -40, -37, -31, -20, -19, -16, -11, --22, -30, -39, -40, -50, -45, -35, -42, -47, -44, -36, -41, -26, -25, -5, 1, 18, 25, 17, 9, 7, -7, -28, -64, -64, --66, -67, -66, -65, -65, -59, -55, -51, -44, -37, -27, -31, -33, -37, -39, -40, -47, -27, -46, -46, -41, -40, -50, -56, -58, --54, -69, -75, -71, -71, -59, -60, -67, -39, -63, -55, -56, -55, -56, -57, -58, -55, -51, -48, -45, -44, -40, -43, -44, -45, --47, -48, -56, -36, -13, 12, -42, -12, 16, 14, 10, 4, 5, 3, -2, -19, -47, 2, -16, -55, 32, -20, 45, 29, 33, -32, 29, 29, 29, 35, 37, 33, 35, 36, 39, 39, 38, 35, 31, 25, 40, -22, -47, -50, -2, -43, -56, -59, -62, -60, --70, -69, -57, -48, -2, -46, -53, -55, 33, 45, 43, 45, 34, 31, 31, 45, 46, 35, 42, 52, 66, 71, 65, 52, 32, -26, 10, -53, 7, 11, 13, 3, 1, 7, -6, -31, -19, -6, 2, -8, -19, 6, 17, -30, 17, 57, 48, 56, 36, 30, -29, 60, 69, 53, 61, 65, 84, 90, 82, 62, 33, 30, -11, -30, -2, 25, 25, 5, -1, -17, -8, -62, -49, -62, 0, --31, -19, 22, -8, -29, 33, 81, 78, 92, 55, 40, 33, 66, 69, 43, 53, 89, 140, 163, 139, 93, 31, 9, -37, -57, -20, 44, 63, 53, 28, 25, -4, -47, -53, -40, 6, -40, -30, 68, 8, -127, -28, -12, -12, 1, -11, -12, 23, 92, 159, -197, 202, 115, -14, -44, -29, 54, 75, 115, 92, 44, 54, 4, -39, -36, 34, 4, -2, -9, -6, -6, 12, 38, 19, -18, --97, 128, 100, 72, -28, -112, 44, 98, 59, 37, -39, -129, -68, 7, 102, 77, 52, 50, 7, 26, 29, 21, 23, -16, 7, --7, -8, -29, -22, -10, 4, -5, -41, -114, -115, -60, 109, -311, -378, -69, 57, -11, 7, -15, -72, 54, 123, 116, 70, 27, -17, 8, 7, 3, 15, 45, 27, 14, 21, -3, -16, -19, -29, 8, 17, 3, -16, -17, 10, -11, -5, -45, -192, 200, 177, -92, 21, 40, -11, -19, 3, -38, -67, -79, -23, 19, 37, 46, 44, 53, 23, 10, -14, -34, -7, 12, 8, 5, 7, -4, --12, -4, 2, 5, 31, 44, 48, 47, 149, -106, -68, -31, -33, -11, 4, 25, 47, 65, 86, 83, 82, 71, 64, 37, 12, --4, -37, -47, -55, -75, -55, -59, -29, -13, -4, -10, -10, -16, -5, 2, 15, -17, -23, -31, -55, 14, 38, 58, 54, 76, -93, 112, 125, 92, 64, 50, 43, 31, 12, 11, 7, -1, 2, 0, -13, -16, -19, -36, -29, -19, -4, 25, 39, 47, 44, -37, 33, 35, 39, 40, 42, -14, 3, 25, 19, 22, 16, 13, 17, 14, 17, 20, 14, 9, 4, -5, -14, -22, -23, -17, --29, -47, -44, -44, -37, -39, -32, -31, -4, -10, 18, 19, 40, 26, 10, -8, 0, -79, -47, -42, -39, -32, -24, -17, -13, --14, -17, -18, -19, -20, -21, -22, -23, -23, -26, -27, -27, -47, -31, -38, -41, -47, -42, -39, -46, -59, -50, -49, -61, -55, --61, -61, -45, -50, -19, -24, -21, -20, -20, -19, -17, -16, -15, -14, -13, -13, -13, -14, -16, -17, -18, -21, -17, -43, -62, --70, -39, -64, -74, -77, -76, -71, -76, -76, -75, -64, -40, -72, -68, -19, 7, 48, -9, 9, 10, 15, 12, 10, 4, 10, -11, 7, 10, 12, 15, 14, 12, 10, 6, 4, -9, 47, 60, 40, 43, 61, 34, 39, 38, 27, 35, 38, 47, 54, 32, -44, 63, 53, 11, 12, 29, 37, 34, 30, 13, 23, 19, 8, 14, 21, 34, 37, 35, 25, 13, -5, 2, 37, 16, 42, -34, 34, 16, 9, 8, 11, -12, -19, 15, -1, 16, 48, 10, 31, 5, 9, 41, 52, 52, 47, 10, 37, 39, 23, 35, -41, 62, 59, 53, 35, 13, -13, -4, 22, 23, 40, 33, 39, -3, 7, -35, -26, -63, -36, 7, -13, 0, 57, 14, 24, -11, 29, 79, 104, 109, 102, 41, 61, 46, 13, 24, 58, 107, 128, 114, 76, 27, -27, -32, -3, 0, 70, 54, 38, 11, -10, -11, -66, -65, -62, -9, -55, -25, 64, 7, -10, -17, -65, -41, -39, -41, -40, -27, 18, 69, 91, 111, 38, -85, -90, --79, -59, 4, 34, 92, 94, 20, -4, -48, -32, 39, -4, -12, -14, -5, 4, 40, 51, 49, 12, -15, 176, 58, -31, -63, --123, 58, 127, 93, 50, -45, -146, -74, 5, 99, 73, 49, 39, 18, 5, 50, 49, 35, 5, 1, -17, -16, -30, -18, -9, --1, -12, -57, -116, -121, -30, 105, -314, -354, -53, 73, 32, 56, 10, -77, -67, -6, 64, -9, -49, -43, -55, -41, -23, -1, -0, 29, 35, 14, 6, -12, -15, -29, 5, 11, 2, -13, -10, 22, -10, -20, 2, -214, 207, 153, 78, 59, 74, 17, -5, --24, -2, -12, -25, 12, 41, 43, 47, 40, 37, 9, -15, -11, 1, 5, 18, 13, 6, 5, -7, -9, -3, 0, 1, 23, -50, 45, 61, 150, -20, 19, 19, 22, 5, 26, 33, 33, 59, 88, 111, 105, 88, 76, 44, 13, -16, -36, -54, -57, -47, --55, -57, -24, -12, -8, -9, -16, -12, -9, 8, 29, -3, -6, -10, -16, 75, 63, 28, 37, 44, 55, 67, 87, 70, 52, -43, 41, 40, 27, 22, 10, -15, -15, -17, -12, -15, -18, -13, -19, -15, 1, 25, 40, 31, 33, 27, 23, 28, 37, 47, -54, 31, 17, 15, 19, 12, 10, 7, 8, 11, 18, 25, 12, 0, -9, -18, -26, -36, -31, -36, -27, -21, -31, -39, -33, --27, -28, -14, -3, 20, 28, 45, 57, 52, 48, 46, 36, -36, -44, -47, -45, -44, -41, -40, -41, -43, -47, -47, -45, -39, --32, -34, -35, -37, -39, -42, -44, -27, -37, -31, -32, -28, -31, -35, -33, -32, -43, -50, -49, -48, -44, -43, -46, -15, -40, --36, -36, -37, -37, -38, -38, -37, -35, -34, -33, -33, -32, -34, -35, -36, -37, -37, -45, -17, -6, -13, -19, -3, -12, -12, --13, -16, -13, -12, -14, -5, -18, -20, -7, -36, -4, -38, 0, -1, -1, 4, -7, -10, -11, -6, -4, -4, -2, -2, 0, -1, 1, 0, -5, -6, -4, -37, -29, 21, -31, -31, 8, 4, 0, -1, -10, -9, 0, -37, -35, 19, -33, -24, -12, 11, -10, 21, -6, -16, -19, -10, -7, -9, -4, 4, 12, 21, 17, 8, -9, -10, -25, -18, -6, -6, 4, -2, -22, -19, -35, --45, -46, -35, -16, -28, -23, -5, -16, -40, -15, 22, 20, 42, -8, -30, -36, -18, -5, 0, 4, 9, 15, 28, 24, 12, --12, -16, -31, -30, -7, 14, 8, 1, -22, -23, -32, -61, -62, -66, -14, -36, -27, 13, -26, -38, -2, 46, 55, 92, 15, --23, -39, -26, -19, -16, -14, 13, 43, 76, 64, 34, -15, -27, -47, -31, 17, 51, 51, 40, 17, 5, -19, -53, -76, -64, --12, -57, -44, 50, -21, -102, -60, -47, -50, -56, -81, -99, -106, -11, 70, 103, 158, 98, -29, -59, -65, -21, -6, 13, 15, -15, 3, -32, -60, -45, 40, -9, -20, -17, -12, 7, 44, 49, 24, -21, -83, 115, 42, 18, -65, -130, -18, 39, 45, 30, --46, -146, -96, -29, 53, 54, 22, -19, -36, -11, 30, 31, 28, -9, 9, -11, -21, -26, -12, -7, 1, -19, -64, -131, -124, --38, 96, -333, -334, -59, 25, -81, -86, -136, -189, -115, -8, 95, -14, -83, -92, -87, -60, -25, -5, 20, 8, 2, 5, -19, --29, -22, -28, 3, 8, 1, -11, -11, 15, -39, -32, -2, -230, 180, 85, -22, -93, -102, -134, -111, -31, -48, -69, -88, -49, --13, 2, 7, 4, 15, -8, -8, -12, -12, 4, 20, 12, 2, -1, -5, -10, -1, 0, 4, 36, 50, 43, 69, 157, -67, --78, -100, -108, -106, -101, -80, -45, -14, 16, 12, 27, 24, 18, 15, 1, -17, -44, -57, -67, -77, -64, -55, -23, -10, -13, --14, -16, -26, -18, -8, 6, -17, -23, -33, -74, 18, -18, -27, -12, 17, 48, 71, 78, 82, 77, 73, 56, 36, 11, 0, --10, -18, -13, -10, -10, -19, -25, -39, -30, -14, 4, 26, 34, 31, 24, 16, 10, 13, 10, 15, 2, 5, 16, 29, 18, -10, -3, -8, -9, -6, -2, 6, 1, -2, -5, -13, -21, -29, -31, -30, -38, -45, -40, -40, -30, -27, -20, -12, 8, 14, -36, 42, 58, 46, 35, 26, 21, -50, -50, -50, -53, -50, -49, -49, -54, -49, -45, -40, -34, -29, -25, -26, -26, -26, -28, --27, -32, -44, -41, -50, -47, -54, -58, -53, -58, -60, -55, -49, -51, -48, -49, -52, -45, -56, -35, -36, -37, -39, -41, -42, --43, -39, -36, -34, -32, -30, -28, -29, -30, -31, -33, -34, -32, -54, -56, -35, -56, -60, -35, -37, -37, -34, -38, -38, -37, --52, -51, -33, -55, -40, 39, 47, 37, 35, 40, 41, 44, 44, 40, 43, 43, 42, 43, 43, 45, 46, 46, 44, 39, 33, -33, 45, 26, -28, 52, 29, -31, -27, -28, -30, -28, -26, -16, 25, 49, -22, 25, 8, 48, 40, 53, 58, 69, 70, 57, -62, 59, 53, 53, 59, 68, 80, 81, 73, 55, 37, 37, 4, 31, 47, 34, 28, 25, 21, 22, 14, 6, 2, 16, 11, -10, 37, 33, 29, 36, 44, 65, 73, 93, 98, 70, 84, 84, 82, 81, 84, 95, 109, 107, 93, 59, 37, 16, 20, 27, -36, 34, 27, -2, -8, -24, -28, -55, -43, 2, -12, 0, 39, 22, 14, 38, 46, 83, 107, 142, 150, 107, 113, 103, 89, -81, 107, 144, 192, 191, 161, 95, 40, 8, 3, 28, 61, 58, 39, 8, -2, -28, -60, -82, -75, -25, -58, -27, 46, 14, -0, 41, 45, 52, 19, 34, 32, 27, 78, 121, 127, 174, 105, -53, -58, -61, -39, 12, 43, 60, 34, 1, -27, -55, -38, -43, -10, -22, -18, -6, 21, 72, 70, 52, 8, -3, 157, 62, -19, -61, -131, 15, 83, 77, 65, -20, -136, -98, -30, 69, -111, 122, 119, 74, 55, 72, 43, 38, 16, 21, -3, -24, -24, -8, -5, 3, -19, -69, -132, -106, 3, 127, -322, -281, -40, -85, 155, 178, 133, 45, -22, 21, 154, 86, 47, 36, 5, -17, -31, -5, 14, 38, 39, 18, -7, -17, -15, -24, 4, 7, -1, -6, -5, 21, -37, -37, 23, -230, 168, 58, 68, 112, 220, 128, 72, 16, 18, 3, -8, 15, 39, 36, 64, 79, 87, -55, 25, 9, 5, 21, 32, 20, 7, -1, -5, -6, 0, 0, 5, 40, 51, 53, 83, 158, -40, 55, 132, 118, 88, 90, -91, 86, 89, 111, 137, 123, 104, 86, 49, 12, -17, -42, -49, -42, -49, -43, -46, -16, -4, -7, -10, -15, -17, -11, 3, -19, -2, -8, -31, -15, 2, 34, 25, 33, 58, 87, 112, 144, 107, 83, 73, 76, 77, 61, 53, 38, 10, 9, -4, -17, --21, -20, -17, -10, -3, 13, 31, 36, 24, 23, 17, 14, 15, 24, 26, 35, 59, 59, 64, 61, 52, 48, 47, 54, 53, -57, 57, 35, 14, -5, -12, -19, -26, -21, -18, -13, -18, -25, -30, -21, -17, -10, -2, 21, 35, 48, 57, 72, 68, 65, -60, 61, -47, -22, -25, -20, -15, -10, -8, -8, -16, -24, -28, -30, -29, -27, -27, -27, -29, -30, -35, -33, -33, -27, -22, --29, -28, -25, -23, -19, -23, -21, -22, -24, -23, -29, -26, -21, -8, -12, -14, -12, -14, -14, -14, -11, -13, -13, -15, -15, --17, -19, -20, -20, -21, -21, -22, -24, -13, -21, -51, -10, -20, -55, -53, -51, -48, -45, -42, -40, -14, -2, -50, -20, -16, --25, -17, -33, -17, -19, -12, -24, -28, -32, -29, -27, -24, -23, -23, -22, -20, -20, -21, -26, -23, -35, -16, 15, 73, -23, -11, 59, 58, 54, 48, 47, 48, 52, 5, -32, 69, 16, 26, -34, -13, -7, 10, -17, -30, -40, -37, -34, -30, -28, -22, --19, -8, -9, -15, -26, -31, -36, 27, -6, -3, 7, 6, -26, -27, -38, -32, -50, -47, -22, -31, -11, 1, -28, -17, -25, --8, 7, 35, -13, -39, -63, -55, -43, -24, -22, -18, -19, -5, -5, -14, -32, -44, -31, -9, 0, 8, 3, 10, -34, -19, --51, -47, -69, -55, -23, -28, -20, 15, -21, -20, -23, 8, 41, 92, 26, -18, -60, -62, -58, -35, -40, -21, -6, 31, 31, -13, -23, -41, -36, 7, 13, 53, 38, 26, -2, -15, -32, -56, -91, -85, -34, -66, -44, 25, -32, -24, -47, -47, -50, -87, --102, -125, -162, -76, -6, 15, 92, 58, -60, -80, -98, -104, -76, -74, -43, -6, -45, -56, -71, -45, 43, -15, -27, -19, -12, -21, 75, 66, 44, -2, -24, 104, -7, -45, -88, -128, -54, 9, 47, 38, -35, -141, -109, -54, 11, 43, 23, -35, -32, -18, -44, 43, 31, 7, 11, -12, -31, -23, -5, -4, 2, -25, -81, -143, -125, -8, 77, -299, -262, -67, -7, -50, -81, -159, -225, --224, -112, 71, -59, -132, -145, -136, -100, -51, -22, -14, -11, -2, -10, -26, -35, -24, -22, 0, 3, 0, -6, -7, 8, -49, --43, 24, -224, 139, 5, -64, -95, -107, -125, -105, -52, -34, -42, -55, -43, -19, -15, -7, -5, -1, -16, -14, -4, 15, 16, -26, 15, 0, -9, -6, -6, 3, 1, 5, 35, 41, 32, 89, 146, -11, -37, -88, -101, -128, -126, -112, -83, -47, -13, -5, -14, 14, 7, 10, -3, -27, -43, -58, -66, -63, -61, -44, -15, -5, -14, -13, -19, -22, -19, -8, 3, -7, -13, -25, -60, -24, -44, -79, -51, -22, 13, 34, 38, 69, 81, 87, 68, 49, 24, 11, -5, -22, -21, -21, -15, -24, -28, -30, -22, -6, -12, 22, 25, 11, 8, 2, -4, 1, -5, 3, -16, 38, 36, 36, 29, 14, 1, -5, -10, -5, -3, 5, -4, -9, -14, --21, -27, -35, -35, -38, -37, -31, -30, -32, -21, -11, -4, 10, 21, 39, 48, 58, 65, 61, 59, 60, 47, -15, -39, -43, --48, -49, -52, -58, -66, -60, -55, -49, -41, -33, -26, -27, -28, -29, -30, -30, -37, -33, -44, -49, -44, -48, -59, -55, -54, --46, -47, -41, -32, -33, -28, -32, -35, -39, -40, -38, -42, -44, -47, -48, -51, -47, -45, -44, -42, -40, -37, -39, -39, -40, --41, -41, -43, -44, -31, -2, -51, -34, -1, 0, 0, -1, 0, 1, 2, -22, -40, 3, -23, -50, 42, 14, 52, 38, 43, -43, 46, 46, 43, 44, 45, 47, 46, 46, 46, 49, 49, 48, 43, 36, 47, 12, -18, -56, 26, -16, -60, -60, -61, -58, --63, -62, -54, -18, 28, -53, -22, -34, 48, 44, 49, 56, 63, 63, 54, 58, 58, 61, 57, 62, 66, 83, 85, 78, 59, -48, 39, -25, 26, 26, 21, 11, 9, 12, 10, -6, 0, 3, 0, 5, -6, 7, 28, 4, 39, 56, 60, 72, 83, 84, -67, 71, 75, 92, 81, 83, 81, 107, 108, 97, 62, 52, 14, 1, 16, 18, 22, 7, -13, -25, -21, -44, -51, -53, -15, --18, -7, 9, 11, -13, 38, 48, 65, 96, 115, 115, 90, 87, 90, 109, 87, 104, 124, 183, 189, 168, 103, 68, 25, 3, -44, 40, 52, 35, -1, -15, -40, -48, -92, -82, -42, -56, -32, 18, 3, -6, 60, 109, 94, 30, 50, 42, 19, 77, 118, -122, 187, 135, -22, -38, -56, -36, -7, 14, -10, -40, -28, -53, -60, -41, 42, -12, -23, -14, -5, 33, 90, 82, 51, 5, --1, 101, 42, -4, -59, -124, -46, 15, 47, 66, 3, -114, -114, -66, 20, 108, 139, 126, 82, 73, 73, 32, 32, 18, 31, -6, -29, -19, -1, -2, 5, -25, -77, -146, -98, 21, 113, -278, -201, -55, 44, 175, 169, 120, 44, -33, 15, 182, 119, 74, -41, 12, -18, -40, -14, 15, 16, 17, 7, -25, -27, -20, -17, 2, 3, -1, -2, -5, 3, -50, -39, 10, -208, 108, -20, -37, 89, 208, 137, 84, 25, 8, -10, -15, -8, 13, 12, 51, 78, 90, 67, 47, 20, 7, 27, 37, 21, 4, -8, -5, --3, 4, 2, 9, 43, 34, 41, 92, 139, -50, 37, 125, 100, 68, 55, 58, 61, 60, 78, 98, 90, 80, 64, 37, 6, --18, -42, -43, -38, -56, -36, -32, -8, 2, -7, -10, -13, -18, -11, -5, 2, -3, -10, -40, -29, -54, -20, -10, 1, 41, -81, 111, 139, 114, 101, 97, 96, 90, 70, 60, 45, 22, 17, -1, -24, -28, -25, -26, -7, 5, 19, 28, 24, 14, 11, -7, 4, 3, 6, 1, 0, 63, 76, 87, 77, 70, 62, 61, 67, 63, 61, 56, 35, 15, -5, -9, -14, -19, -16, -7, --10, -23, -23, -24, -10, -6, 9, 11, 39, 41, 56, 56, 70, 66, 64, 56, 64, -44, -7, -7, -4, 2, 7, 8, 7, --1, -8, -11, -16, -17, -21, -20, -20, -20, -22, -26, -23, -39, -24, -25, -33, -37, -32, -24, -22, -27, -14, -8, -10, -9, --17, -16, -4, -15, 4, -3, -1, -2, -3, -2, 0, -2, -4, -6, -8, -10, -12, -12, -13, -13, -13, -14, -11, -23, -41, --67, -18, -42, -74, -70, -66, -59, -59, -55, -50, -29, -5, -57, -36, -9, -16, 20, -29, -10, -11, -3, -10, -14, -20, -18, --17, -13, -13, -13, -13, -11, -11, -12, -16, -14, -30, 20, 47, 67, 9, 43, 57, 60, 58, 49, 55, 57, 58, 39, 0, -65, 50, 51, -19, -12, 1, 18, 7, -3, -21, -20, -19, -10, -14, -11, -9, 3, 6, 1, -7, -17, -14, 49, 7, 15, -17, 17, -12, -15, -17, -8, -29, -35, -16, -16, 5, 12, -14, 17, -8, -10, 17, 41, 24, 6, -34, -31, -25, 3, -2, -2, -2, 13, 14, 5, -11, -30, -11, 16, 13, 9, 7, 19, -34, -13, -54, -35, -67, -40, -26, -13, -5, 17, -1, 3, --16, -11, 39, 90, 74, 46, -19, -27, -25, 7, -8, 4, 13, 55, 64, 51, 20, -11, -2, 37, 16, 45, 30, 17, -21, --29, -41, -55, -95, -93, -56, -64, -35, 0, -24, 59, 12, 10, 4, -63, -56, -71, -116, -66, -26, -19, 56, 35, -74, -85, --110, -147, -105, -105, -68, -27, -73, -69, -66, -36, 41, -13, -21, -10, -3, 38, 99, 84, 67, 26, 43, 88, -26, -80, -89, --115, -66, -3, 52, 55, -7, -115, -112, -72, -11, 52, 62, 18, 23, 15, 64, 48, 31, 23, 16, -7, -32, -20, 0, -2, -0, -29, -86, -144, -112, 26, 65, -229, -175, -78, -15, 70, 26, -53, -126, -212, -138, 68, -27, -82, -110, -111, -95, -64, -33, --36, -22, -1, -17, -25, -34, -22, -15, 1, 2, -1, 0, -4, -7, -38, -37, 14, -186, 83, -30, -17, 5, 17, 7, -5, --36, -4, -7, -8, -17, -6, -11, 10, 21, 18, 9, 4, 11, 33, 27, 32, 18, 1, -12, -7, -1, 4, 2, 7, 27, -21, 18, 89, 108, 27, 29, 3, -12, -63, -66, -65, -56, -28, 0, 26, 35, 34, 26, 18, 0, -28, -36, -49, -53, -42, --44, -26, -6, 0, -9, -10, -15, -11, -12, -4, 1, 5, 0, -14, -24, 7, -44, -82, -53, -29, 1, 18, 31, 62, 80, -90, 81, 70, 50, 37, 18, -8, -16, -25, -24, -29, -29, -16, -7, 3, 18, 17, 14, -3, -2, -3, -7, -4, -7, -3, --18, 67, 56, 47, 46, 34, 26, 22, 19, 20, 18, 19, 4, -8, -19, -23, -27, -33, -29, -33, -25, -13, -18, -23, -9, -4, 14, 28, 34, 56, 53, 62, 63, 65, 71, 77, 66, 7, -13, -18, -21, -24, -28, -35, -42, -42, -41, -39, -36, -32, --27, -27, -28, -30, -32, -34, -39, -25, -38, -36, -34, -35, -43, -41, -35, -25, -28, -23, -12, -13, -7, -9, -14, -11, -28, --26, -29, -32, -34, -35, -37, -36, -36, -37, -36, -37, -36, -37, -37, -37, -38, -37, -41, -24, -8, 4, -29, -8, 5, 8, -8, 7, 12, 14, 15, 5, -15, 12, 5, -42, 18, -19, 30, 18, 20, 23, 20, 18, 15, 16, 18, 24, 21, 20, 19, -24, 24, 23, 19, 15, 25, -21, -36, -29, -11, -36, -37, -39, -41, -38, -46, -45, -41, -37, -8, -29, -40, -40, 17, 23, -23, 34, 28, 23, 14, 17, 21, 34, 27, 30, 30, 48, 50, 44, 30, 27, 14, -24, 10, -2, 4, -5, -16, -8, -15, --30, -20, -13, -22, -12, -18, -19, 3, -19, 19, 38, 34, 53, 39, 28, 13, 12, 21, 56, 41, 42, 32, 61, 63, 55, -29, 27, -1, -15, 0, -3, 3, -8, -32, -34, -30, -60, -52, -57, -36, -22, -14, -15, -8, -34, 14, 27, 37, 78, 61, -38, 14, 9, 26, 74, 45, 52, 57, 113, 124, 109, 64, 53, 22, 9, 42, 20, 35, 25, -17, -27, -44, -42, -92, -84, --61, -53, -36, -13, -20, 3, 48, 110, 80, 0, 12, -3, -38, 18, 54, 61, 136, 112, -8, -39, -69, -68, -58, -51, -85, --93, -63, -76, -58, -36, 37, -10, -15, -5, 2, 43, 96, 86, 53, 13, 8, 38, 0, -11, -64, -108, -98, -47, 21, 56, -17, -89, -119, -91, -27, 68, 102, 75, 56, 60, 62, 26, 23, 15, 29, 6, -30, -16, 1, -1, 1, -30, -79, -145, -94, -29, 71, -202, -132, -84, -20, 120, 72, 18, -27, -96, -41, 134, 81, 31, -24, -33, -47, -52, -27, -4, -22, -14, -12, -37, --37, -23, -10, 3, 2, -2, 2, -5, -19, -39, -28, -25, -162, 41, -40, 16, 32, 79, 69, 47, 12, -12, -33, -31, -36, --19, -15, 21, 45, 54, 46, 44, 23, 14, 28, 35, 18, 0, -11, -5, 0, 4, 2, 9, 31, 10, 16, 75, 85, -31, --1, 38, 14, -18, -40, -36, -19, -10, 8, 22, 28, 30, 26, 16, -1, -19, -36, -38, -41, -55, -32, -16, -2, 4, -6, --10, -10, -11, -8, -8, -13, -4, -9, -29, -38, -70, -72, -58, -43, -5, 32, 57, 74, 86, 96, 104, 97, 82, 59, 47, -31, 15, 6, -9, -28, -33, -29, -29, -6, 9, 20, 17, 8, 1, -2, -2, -5, -7, -13, -21, -36, 50, 63, 72, 62, -58, 49, 48, 51, 44, 38, 32, 17, 5, -10, -11, -15, -18, -17, -9, -16, -25, -21, -20, -3, 5, 24, 26, 47, 45, -54, 47, 53, 51, 50, 46, 51, -19, 5, 5, 4, 6, 5, 2, -1, -5, -7, -9, -12, -14, -19, -18, -19, -18, -20, --22, -23, -40, -28, -33, -35, -42, -40, -32, -31, -32, -17, -5, -4, -1, -6, -6, 5, -24, 2, -5, -5, -7, -8, -8, --8, -9, -11, -13, -15, -16, -18, -17, -18, -18, -18, -19, -14, -35, -48, -50, -33, -50, -54, -52, -48, -42, -43, -40, -35, --33, -17, -35, -36, -19, 11, 41, 4, 12, 14, 18, 19, 17, 9, 11, 11, 17, 14, 14, 13, 17, 17, 15, 12, 10, -2, 39, 42, 15, 34, 41, 10, 15, 14, 8, 15, 18, 18, 40, 31, 16, 45, 34, 16, 8, 22, 34, 42, 38, 17, -18, 18, 30, 21, 22, 23, 38, 42, 37, 31, 17, 22, 35, 21, 27, 22, 19, 3, 4, 8, 8, -1, -10, -8, 2, -11, 14, 9, 34, 23, 11, 36, 51, 68, 64, 19, 20, 22, 54, 40, 42, 38, 57, 59, 48, 30, 11, 15, 27, 20, -8, 12, 17, -29, -14, -43, -36, -56, -32, -31, -3, 6, 11, 17, 11, 8, -7, 40, 80, 116, 109, 42, 36, 39, 78, -49, 52, 61, 111, 127, 114, 81, 43, 37, 46, 27, 28, 25, 13, -34, -33, -43, -51, -87, -87, -74, -53, -23, -23, -12, -102, 82, 97, 82, -4, 21, 15, -18, -6, 1, -3, 58, 46, -51, -67, -96, -139, -96, -90, -71, -57, -80, -73, -51, -22, -34, -7, -8, 3, 11, 51, 103, 94, 80, 48, 83, 59, -20, -73, -73, -98, -71, -14, 47, 69, 26, -79, -109, -85, -22, -61, 106, 95, 90, 66, 77, 42, 27, 29, 22, 0, -30, -15, 2, -3, -3, -31, -78, -132, -87, 50, 56, -154, -95, -88, --12, 197, 148, 90, 31, -121, -101, 84, 56, 26, -29, -43, -57, -62, -36, -37, -24, -1, -16, -24, -29, -18, -6, 5, 1, --1, 4, 0, -21, -15, -19, -28, -137, 22, -9, 72, 122, 155, 156, 114, 14, 22, 12, 20, 2, 8, 1, 35, 54, 51, -48, 35, 29, 37, 34, 36, 20, 2, -11, -5, 1, 1, -1, 6, 16, 1, 5, 60, 45, 32, 74, 103, 88, 31, 16, -4, -4, 5, 24, 59, 56, 54, 49, 27, 4, -21, -27, -33, -33, -25, -21, -8, 2, 5, -3, -7, -8, -2, -3, -1, --3, 8, 7, -2, 12, -31, -38, -50, -35, -18, 3, 19, 43, 59, 74, 86, 89, 86, 72, 61, 41, 11, -4, -21, -31, --33, -26, -7, 6, 12, 20, 12, 4, -9, -5, -3, -4, -5, -7, -11, -17, 73, 62, 54, 57, 52, 52, 53, 56, 51, -44, 39, 19, 1, -17, -19, -21, -25, -18, -17, -8, -2, -9, -14, 0, 14, 30, 37, 45, 59, 50, 51, 48, 53, 62, -68, 64, 15, 21, 16, 15, 12, 9, 4, 1, -7, -14, -18, -22, -24, -25, -25, -26, -27, -29, -33, -34, -23, -26, -19, --21, -20, -20, -18, -10, -4, -2, 2, 9, 10, 11, 14, 13, 10, -4, -6, -7, -9, -10, -10, -11, -14, -16, -19, -21, --24, -27, -26, -26, -26, -26, -25, -28, -9, -4, -16, -7, 0, -17, -13, -10, -10, -4, -2, 2, 12, 9, -4, 12, -23, --11, -27, -6, -6, -7, -2, -9, -12, -17, -16, -13, -5, -9, -9, -11, -7, -6, -7, -10, -9, -10, -28, -17, 24, -29, --21, 13, 11, 8, 6, 3, 4, 2, -22, -29, 19, -18, -11, -17, -5, -4, 10, -4, -14, -27, -25, -19, 0, -9, -8, --10, 6, 9, 4, -3, -2, -12, 3, -4, -15, -5, -10, -32, -22, -29, -37, -32, -28, -36, -23, -17, -27, -21, -22, -2, -6, 8, 31, 3, -17, -42, -44, -32, 14, -4, -2, -15, 10, 13, 5, -7, -9, -12, -14, -8, -15, -12, -11, -47, -33, --44, -67, -55, -50, -51, -19, -13, -22, -19, -36, -13, -4, 13, 60, 25, -13, -53, -58, -35, 30, -3, -7, -10, 37, 52, -43, 23, 23, 16, 23, 27, 7, 13, 9, -35, -32, -40, -41, -81, -77, -76, -48, -33, -38, -39, 38, 38, 81, 49, -30, --32, -52, -87, -52, -28, -18, 54, 60, -5, -50, -90, -119, -114, -119, -129, -108, -92, -89, -48, -21, 28, -3, -3, 7, 12, -49, 88, 84, 62, 32, 36, -4, -40, -37, -70, -90, -120, -75, 13, 49, 27, -65, -114, -104, -57, 17, 49, 20, 32, 40, -50, 27, 16, 13, 18, 0, -28, -12, 2, -4, -4, -30, -72, -125, -85, 34, 25, -127, -75, -106, -64, 72, -10, -67, -90, --166, -115, 53, 23, -21, -93, -84, -76, -60, -40, -31, -51, -35, -28, -39, -39, -21, -3, 5, 1, 0, 5, 2, -29, -13, --11, -64, -117, -14, 3, 21, -9, -55, 3, 20, 9, -18, -40, -33, -48, -36, -29, -6, 6, 9, 18, 30, 25, 27, 28, -31, 14, -1, -10, -3, 1, 1, -2, 5, 12, -7, -10, 32, 6, 13, -15, -38, -50, -86, -110, -114, -94, -73, -53, -41, --22, -10, -4, 0, -5, -16, -25, -31, -41, -40, -24, -1, 3, 5, -5, -6, -4, -1, -2, -5, -16, -3, -3, -1, -21, --52, -92, -88, -73, -52, -29, -13, -5, 42, 72, 92, 81, 65, 44, 31, 14, -1, -14, -23, -29, -34, -29, -23, -4, 9, -15, 4, -5, -10, -10, -9, -13, -13, -26, -33, -55, 32, 34, 33, 30, 28, 24, 25, 25, 20, 12, 9, 0, -6, -15, --16, -19, -21, -20, -18, -21, -20, -15, -14, 1, 15, 34, 38, 44, 46, 43, 35, 30, 31, 35, 36, 33, 19, 17, 15, -9, 4, -2, -8, -14, -15, -14, -14, -15, -17, -20, -20, -20, -20, -22, -22, -27, -32, -30, -34, -29, -34, -36, -30, -28, --22, -12, 0, 6, 8, 9, 9, 13, -21, -7, -11, -14, -16, -17, -19, -21, -21, -23, -25, -26, -26, -27, -26, -27, -26, --27, -26, -24, -38, -36, -17, -37, -35, -15, -14, -11, -9, -9, -8, -4, -18, -20, 1, -17, -32, 30, 31, 34, 27, 31, -32, 37, 37, 30, 31, 32, 38, 34, 33, 32, 36, 36, 35, 32, 27, 31, 29, 9, -36, 33, 10, -38, -34, -35, -37, --33, -31, -32, 11, 36, -34, 9, -5, 38, 25, 34, 40, 58, 57, 39, 41, 43, 58, 45, 44, 44, 61, 66, 62, 54, -44, 42, 3, 24, 23, 15, 9, 5, 13, 18, 4, 13, 8, -9, 10, 5, 1, 21, 24, 42, 33, 45, 52, 83, 87, -50, 50, 51, 89, 65, 65, 59, 84, 87, 77, 57, 45, 28, 17, 15, 3, 7, 3, -28, -22, -29, -51, -43, -33, -40, --1, 7, -5, 18, -3, 25, 6, 33, 61, 117, 119, 67, 63, 75, 124, 81, 74, 83, 139, 160, 148, 115, 84, 61, 35, -34, 7, 16, 7, -39, -29, -38, -42, -71, -69, -81, -38, -16, -40, -9, 98, 123, 160, 136, 51, 71, 67, 55, 43, 32, -24, 74, 72, 3, -36, -72, -102, -78, -67, -75, -91, -77, -75, -29, -6, 23, 1, 4, 13, 19, 53, 87, 90, 80, 57, -86, 17, -9, -41, -54, -83, -83, -34, 35, 71, 52, -41, -106, -100, -35, 52, 116, 136, 123, 98, 73, 27, 18, 25, 23, -4, -24, -9, 0, -7, -6, -27, -62, -109, -60, 56, 42, -99, -33, -88, -8, 253, 198, 162, 125, -39, -54, 87, 124, 116, -35, 14, -21, -52, -36, -26, -25, -8, -14, -27, -25, -14, 1, 5, 1, 2, 5, 7, -25, 3, -2, -76, -97, -32, 51, -125, 153, 177, 206, 175, 73, 34, 6, 18, -2, 5, 5, 41, 62, 66, 70, 60, 42, 32, 36, 37, 17, 2, -7, -2, -0, -1, -4, 2, 6, -8, -7, 4, -32, 23, 75, 137, 129, 80, 54, 30, 15, 12, 22, 54, 49, 50, 51, 26, 6, --8, -18, -18, -16, -15, 0, 9, 9, 8, 0, -4, -1, 2, 2, 1, -9, 2, 7, 10, 36, -67, -38, -19, -20, -11, -1, 17, 46, 53, 64, 74, 84, 86, 76, 66, 48, 21, 3, -16, -34, -33, -23, -6, 11, 15, 16, 4, -5, -8, -6, --3, -5, -8, -11, -23, -25, 50, 46, 43, 46, 49, 56, 63, 71, 63, 56, 48, 28, 10, -10, -10, -12, -14, -8, -3, -0, -2, -4, -5, 9, 20, 40, 39, 47, 48, 40, 31, 26, 31, 38, 38, 42, 17, 43, 40, 40, 38, 36, 33, 33, -21, 11, 3, -6, -12, -20, -19, -19, -20, -22, -25, -23, -25, -14, -7, -10, -9, -1, 3, 9, 10, 19, 24, 26, 28, -23, 29, 35, 13, 16, 10, 10, 10, 10, 9, 10, 5, 2, -3, -6, -10, -14, -13, -13, -13, -12, -12, -12, -6, -14, --39, 2, -9, -39, -36, -32, -29, -25, -23, -18, 3, 18, -22, 1, -6, -23, -8, -27, -16, -18, -12, -18, -22, -29, -27, --25, -16, -21, -21, -22, -19, -19, -19, -21, -19, -28, -8, 16, 54, -18, 11, 43, 44, 42, 34, 39, 41, 35, 10, -21, -49, 18, 23, -27, -20, -14, 0, -10, -20, -39, -38, -32, -11, -23, -25, -26, -13, -9, -11, -13, -15, -16, 31, -6, -9, --4, -5, -29, -21, -23, -25, -26, -29, -33, -19, -5, -17, -27, -4, -7, -14, -1, 18, 1, -18, -56, -57, -49, 1, -20, --19, -28, -9, -6, -12, -17, -24, -7, 1, -5, -13, -17, -7, -49, -25, -50, -64, -52, -36, -56, -9, -4, -15, -13, -22, --24, -26, 2, 45, 30, -4, -63, -69, -49, 20, -21, -34, -35, 5, 25, 21, 17, 11, 22, 37, 12, 2, -6, -7, -45, --29, -29, -37, -61, -62, -80, -39, -24, -52, -43, 85, 53, 68, 45, -23, -39, -60, -80, -79, -74, -70, -7, 20, 5, -52, --98, -150, -143, -151, -130, -96, -101, -86, -27, 0, 18, 4, 6, 14, 18, 47, 71, 77, 75, 58, 72, -19, -56, -63, -72, --76, -114, -70, 23, 48, 38, -36, -101, -108, -67, -16, 18, 9, 37, 34, 44, 27, 11, 14, 9, -6, -23, -6, -1, -7, --6, -23, -57, -95, -66, 40, -5, -72, -22, -98, -60, 86, -3, -58, -74, -182, -156, -12, 2, -21, -101, -93, -80, -59, -46, --50, -56, -34, -31, -33, -30, -13, 4, 4, 1, 4, 3, 12, -23, 10, 3, -87, -82, -51, 84, 44, -13, -109, -12, 34, -38, 4, -23, -17, -39, -33, -24, -14, -12, -11, 7, 22, 30, 40, 30, 29, 10, -1, -6, -1, -1, -2, -5, 1, -3, --10, -26, -30, -76, 62, 10, -38, -36, -78, -99, -120, -116, -93, -73, -54, -34, -19, -8, -3, -2, -8, -12, -21, -29, -14, --7, 12, 9, 6, -2, -1, 2, 5, 3, 1, -11, -2, 7, 30, 25, -27, -72, -77, -69, -71, -66, -58, -50, 7, 44, -64, 59, 51, 38, 26, 8, -13, -27, -32, -28, -32, -25, -10, 2, 9, 8, -5, -11, -14, -12, -11, -16, -17, -29, -34, --53, 18, 6, -4, 0, -1, 5, 10, 11, 9, 5, 6, -1, -6, -13, -15, -17, -20, -18, -22, -20, -8, -5, -4, 8, -23, 39, 43, 37, 43, 29, 24, 11, 16, 22, 28, 18, 48, 29, 25, 18, 9, 1, -7, -13, -14, -15, -15, -17, -18, --20, -20, -20, -21, -23, -22, -28, -20, -24, -22, -14, -13, -16, -13, -9, 1, 3, 11, 20, 20, 25, 25, 22, -6, -11, --11, -14, -15, -17, -19, -23, -23, -24, -26, -27, -27, -28, -28, -28, -28, -28, -27, -28, -24, -12, 8, -23, -7, 15, 17, -17, 16, 18, 19, 21, 5, -9, 25, 8, -31, 26, 2, 38, 23, 27, 26, 30, 30, 25, 25, 27, 35, 29, 28, 27, -32, 32, 31, 29, 24, 34, 0, -23, -47, 7, -24, -51, -50, -51, -51, -51, -49, -52, -20, 15, -47, -25, -34, 31, 23, -25, 30, 42, 41, 28, 29, 34, 54, 36, 34, 35, 52, 57, 55, 46, 42, 35, -19, 13, 6, 0, -7, -6, 5, 7, --13, 8, 9, -18, 5, -6, -17, 12, -1, 37, 36, 35, 39, 60, 60, 34, 32, 37, 82, 51, 50, 44, 69, 74, 68, -50, 46, 22, -2, 0, -5, -7, -16, -32, -31, -24, -69, -35, -37, -51, -5, 2, -21, 4, -25, 21, 11, 16, 37, 77, -74, 37, 33, 55, 118, 62, 46, 54, 108, 131, 126, 101, 86, 59, 19, 31, -10, 0, -3, -37, -21, -25, -27, -49, -46, --75, -26, -15, -51, -19, 69, 119, 169, 143, 75, 65, 52, 58, 40, 28, 22, 72, 90, 60, -7, -54, -73, -77, -68, -90, --113, -73, -74, -7, 7, 12, 7, 8, 13, 18, 42, 59, 74, 71, 59, 67, -25, -8, -14, -46, -73, -103, -64, 19, 58, -59, -9, -98, -113, -56, 17, 80, 113, 105, 92, 53, 11, 6, 14, 17, 1, -17, -3, -4, -7, -7, -17, -43, -81, -41, -47, 17, -60, 17, -72, -9, 214, 156, 131, 118, -21, -44, 54, 132, 136, 44, 23, -13, -42, -36, -19, -28, -17, -13, -29, --21, -8, 5, 3, 2, 4, 2, 13, -15, 12, 9, -102, -68, -67, 117, 104, 74, 60, 121, 140, 115, 34, -10, -7, -22, --14, -4, 20, 36, 48, 60, 62, 45, 28, 34, 32, 10, 0, -3, -2, -2, -2, -4, -1, -2, -8, -18, -63, -104, 30, -46, 93, 91, 60, 28, -3, -16, -21, -13, 7, 10, 17, 27, 15, 7, 4, -8, -6, -4, -7, 15, 21, 13, 9, 0, -1, 3, 3, 4, 2, -9, -5, 6, 26, 55, -78, -44, -9, -21, -19, -16, -1, 22, 36, 47, 56, 65, 65, 57, 48, -33, 12, -2, -15, -30, -30, -20, -9, 9, 12, 7, -4, -11, -8, -7, -6, -11, -14, -21, -35, -40, 13, 14, 15, 16, -21, 33, 43, 55, 49, 46, 41, 28, 16, 2, 0, -3, -4, -3, 2, -3, -6, -1, 3, 14, 23, 43, 36, 41, 33, -27, 13, 6, 9, 10, 7, 12, 21, 47, 47, 46, 43, 42, 40, 40, 30, 21, 14, 5, -3, -13, -11, -11, -11, -13, --14, -13, -23, -6, -1, -1, -1, 9, 14, 17, 15, 27, 34, 33, 34, 28, 32, 41, 5, 21, 15, 16, 16, 16, 15, -16, 12, 9, 5, 2, -1, -5, -4, -4, -4, -3, -4, 0, -11, -24, -41, -1, -18, -38, -37, -34, -29, -29, -27, -23, --8, 12, -23, -10, 2, -12, 18, -19, -8, -8, -4, -5, -8, -16, -15, -13, -4, -10, -9, -10, -8, -8, -8, -10, -9, --19, 17, 34, 40, 6, 29, 33, 36, 35, 25, 36, 38, 31, 31, 5, 37, 38, 34, -11, -14, -4, 5, 10, 3, -18, --18, -15, 6, -11, -14, -13, -3, 3, 4, 4, -3, 2, 37, 2, 7, 1, 2, -12, -8, -4, -6, -6, -13, -21, -5, -7, -3, -13, 16, 7, -11, 9, 19, 28, 18, -27, -28, -24, 24, -4, -3, -5, 8, 12, 8, 3, -10, 8, 15, 1, --4, -15, -5, -40, -18, -44, -57, -43, -22, -53, 0, 6, -7, 1, -5, -12, -28, 2, 31, 60, 46, -21, -31, -15, 49, --3, -24, -16, 20, 46, 49, 46, 27, 37, 39, 4, -2, -18, -17, -41, -20, -15, -25, -38, -42, -71, -27, -13, -55, -33, -113, 87, 89, 79, 29, -4, -24, -21, -51, -66, -70, -16, 23, 35, -31, -82, -139, -132, -135, -101, -77, -90, -70, -1, 16, -9, 9, 7, 13, 15, 36, 46, 64, 80, 77, 96, -18, -43, -66, -65, -67, -97, -56, 33, 48, 47, -4, -86, -108, -67, --26, 18, 42, 64, 46, 41, 20, 5, 15, 4, -8, -14, -2, -5, -6, -8, -11, -35, -64, -43, 43, -14, -32, 34, -62, --20, 143, 80, 39, 22, -125, -140, -37, 32, 40, -38, -50, -56, -50, -44, -50, -38, -16, -21, -21, -17, -3, 6, 2, 2, -5, 2, 13, -7, 18, 10, -87, -55, -69, 145, 59, 2, -77, 10, 69, 94, 42, 7, 1, -19, -18, -12, -7, -6, -2, -17, 28, 38, 45, 33, 26, 5, -1, -3, -2, -3, -3, -5, -1, -8, -7, -29, -93, -139, 98, 61, 27, 33, -6, -26, --63, -81, -70, -54, -28, -17, -6, 9, 7, 7, 3, 1, -6, -6, 13, 15, 24, 14, 6, 1, 2, 4, 5, 4, 5, --4, -1, 15, 53, 82, -18, -33, -35, -39, -55, -64, -59, -46, -3, 22, 34, 40, 41, 37, 28, 11, -14, -27, -31, -26, --27, -18, 2, 8, 7, 1, -9, -11, -12, -9, -9, -15, -17, -25, -30, -38, 8, -12, -25, -17, -16, -1, 8, 15, 16, -18, 21, 14, 7, 0, -5, -7, -11, -9, -15, -12, 4, 5, 7, 14, 27, 38, 39, 28, 35, 18, 14, -1, 5, 12, -18, 7, 53, 39, 35, 30, 23, 17, 11, 8, 3, -2, -6, -10, -12, -15, -14, -15, -16, -17, -17, -21, -8, -9, -1, -5, 10, 13, 12, 18, 26, 23, 24, 31, 30, 33, 35, 31, 13, -2, 0, -2, -2, -4, -5, -7, -9, -10, -12, -13, --15, -17, -17, -16, -16, -16, -15, -18, -4, 8, 12, 1, 16, 21, 22, 22, 20, 23, 24, 24, 21, 10, 25, 24, -15, -6, -21, 17, 7, 8, 8, 8, 7, 2, 3, 4, 14, 7, 7, 6, 9, 10, 11, 8, 6, 13, -22, -30, -17, -19, --34, -24, -26, -28, -28, -29, -29, -33, -30, -13, -21, -32, -33, 6, 8, 5, 10, 13, 9, -3, -3, 4, 27, 8, 4, -6, 18, 23, 25, 18, 19, 10, -17, -2, -10, -13, -18, -20, -10, -12, -29, -7, -3, -27, -7, -13, -28, -8, -18, 18, -21, 15, 22, 24, 15, -7, -11, -4, 47, 13, 12, 7, 27, 32, 32, 20, 20, 6, -15, -14, -10, -23, -29, -36, -34, --27, -73, -31, -35, -55, -9, -4, -29, -12, -37, 3, 3, -1, 19, 32, 18, -15, -24, 2, 75, 14, -11, -5, 37, 62, -69, 56, 55, 39, 9, 15, -17, -19, -14, -30, -12, -11, -11, -27, -26, -59, -17, -15, -55, -33, 49, 89, 135, 116, 75, -25, -2, 14, -1, -10, -11, 49, 89, 101, 14, -43, -66, -92, -91, -103, -110, -71, -65, 11, 16, 5, 8, 5, 9, 10, -27, 30, 53, 61, 60, 51, -49, -17, -6, -46, -62, -115, -85, 12, 39, 56, 20, -82, -117, -76, -26, 23, 55, 60, 58, -26, -1, -4, 6, 5, -5, -9, -2, -4, -4, -6, -7, -21, -53, -29, 30, -11, -24, 58, -40, -8, 127, 78, 54, 56, --49, -66, -4, 89, 102, 20, -3, -25, -33, -35, -18, -28, -20, -12, -26, -13, -1, 5, 1, 2, 3, 2, 8, -1, 11, -10, -93, -44, -80, 143, 31, -49, -107, -29, 49, 133, 40, -9, -29, -37, -32, -18, -13, -6, 11, 29, 46, 42, 29, 30, -22, 2, -3, -1, -2, -2, -2, -3, -1, -4, -5, -26, -119, -153, 67, 33, 21, 17, 3, -26, -59, -68, -67, -56, -45, --33, -19, 0, 5, 9, 13, 4, 5, 6, 7, 24, 28, 15, 7, 1, 3, 4, 4, 3, 4, -5, -7, 9, 44, 79, --57, -44, -14, -27, -34, -38, -27, -15, 14, 29, 36, 38, 35, 28, 20, 8, -6, -15, -18, -23, -25, -16, -9, 4, 6, --1, -9, -11, -7, -7, -8, -15, -19, -29, -40, -48, -19, -19, -18, -18, -14, -1, 10, 20, 21, 24, 27, 24, 21, 15, -11, 7, 4, 1, 2, -9, -7, 3, 10, 16, 23, 36, 29, 28, 19, 14, 1, -8, -7, -8, -11, -12, 29, 40, 40, -37, 34, 32, 30, 29, 24, 20, 15, 10, 4, -4, -3, -2, -2, -3, -2, -4, -15, 1, 2, 8, 7, 17, 20, 20, -18, 26, 32, 31, 31, 28, 29, 36, -2, 17, 13, 13, 14, 13, 12, 11, 10, 8, 6, 5, 3, 1, 2, 2, 2, -2, 1, 6, -13, -20, -19, -4, -15, -13, -14, -12, -10, -11, -11, -9, -9, 3, -4, -8, 4, 12, 31, 10, 12, 14, -14, 19, 18, 11, 11, 12, 20, 14, 14, 14, 15, 16, 16, 14, 12, 8, 29, 25, -2, 24, 22, -5, -1, -2, -7, -2, 4, -2, 26, 27, -2, 27, 16, 19, 7, 16, 19, 37, 36, 17, 15, 17, 37, 16, 11, 14, 23, 30, 33, 31, -22, 25, 19, 12, 19, 4, 2, 5, 7, 13, 5, 14, 8, -8, 11, 11, 4, 8, 25, 30, 13, 29, 28, 61, 62, -22, 18, 17, 61, 28, 27, 29, 40, 44, 46, 34, 21, 22, 17, 4, 6, -13, -11, -24, -19, -28, -49, -28, -16, -42, -6, 13, -4, 13, 2, 11, -9, 11, 23, 88, 96, 37, 24, 37, 92, 33, 7, 18, 52, 81, 92, 80, 55, 50, 28, -4, -6, -23, -19, -29, -8, -7, -12, -17, -22, -51, -15, -3, -49, -17, 110, 118, 133, 134, 100, 53, 31, 55, 10, -17, --29, 22, 65, 86, 13, -42, -86, -92, -88, -65, -66, -65, -45, 20, 22, 3, 8, 3, 9, 6, 22, 23, 46, 71, 81, -97, -15, -9, -37, -43, -53, -79, -46, 39, 50, 62, 38, -62, -101, -61, -17, 38, 87, 90, 63, 34, 6, -1, 15, 1, --7, -5, -2, -3, -3, -5, -7, -12, -38, -22, 38, -8, 3, 86, -8, 32, 193, 174, 153, 136, -23, -72, -23, 91, 126, -62, 19, -15, -29, -32, -28, -7, 6, -2, -11, -4, 2, 3, 1, 2, 3, 2, 5, 3, 14, 9, -67, -29, -70, 146, -42, 5, -23, 27, 90, 148, 85, 43, 11, 2, -2, 0, 4, 11, 22, 38, 43, 47, 42, 35, 20, 1, -2, -2, -2, --2, -2, -3, -1, -5, -3, -25, -132, -163, 120, 114, 104, 98, 73, 53, 10, -23, -29, -18, 9, 8, 15, 32, 23, 20, -17, 14, 15, 23, 34, 38, 31, 16, 7, 2, 3, 4, 4, 2, 3, 1, -1, 21, 61, 133, -23, 5, 16, 2, -16, --30, -25, -7, 10, 17, 18, 29, 36, 36, 31, 18, -4, -13, -18, -20, -20, -9, 10, 12, 7, -3, -8, -9, -8, -5, --5, -10, -14, -17, -24, -19, -1, -16, -23, -16, -13, 5, 17, 28, 32, 39, 45, 38, 30, 23, 17, 12, 7, 7, 4, -2, 12, 14, 17, 20, 26, 32, 28, 22, 23, 11, 5, -5, -1, 3, 4, -1, 41, 45, 43, 43, 39, 39, 38, 39, -31, 23, 16, 9, 5, 0, 1, 1, 0, 0, -1, -2, 2, 11, 22, 24, 31, 41, 39, 43, 43, 41, 39, 39, 38, -36, 40, 39, 28, 19, 19, 20, 21, 20, 20, 20, 17, 15, 13, 12, 10, 7, 7, 7, 7, 8, 8, 7, 17, 18, -1, 25, 26, 8, 8, 9, 8, 10, 11, 11, 25, 28, 9, 26, 14, -15, -20, -12, -10, -12, -10, -12, -15, -20, -20, --18, -8, -15, -15, -15, -14, -13, -11, -14, -12, -15, -21, -8, 27, -27, -14, 19, 17, 16, 12, 14, 14, 8, -11, -24, -21, -8, -3, -18, -12, -12, -7, -10, -16, -29, -31, -25, -1, -20, -24, -23, -17, -12, -6, -9, -7, -13, 6, -11, -13, --17, -18, -23, -21, -24, -31, -17, -15, -28, -13, -8, -22, -22, -15, 0, -2, 0, 7, -1, -16, -40, -47, -40, 11, -21, --21, -25, -14, -10, -3, -9, -11, -7, -12, -16, -8, -33, -29, -32, -27, -30, -55, -27, -24, -48, -7, -3, -22, -16, -27, --13, -13, -12, 5, 8, -10, -49, -64, -41, 30, -25, -55, -55, -31, -5, 15, 15, 16, 17, 10, -3, -13, -31, -20, -20, --5, -3, -4, -9, -13, -38, -11, -11, -50, -39, 55, 58, 88, 85, 67, -13, -50, -30, -48, -54, -54, 9, 68, 113, 27, --35, -72, -105, -113, -100, -84, -67, -44, 21, 19, 1, 6, 1, 5, 2, 12, 12, 31, 52, 61, 53, -44, -22, -20, -51, --56, -116, -93, 8, 20, 45, 44, -60, -111, -92, -59, -23, 4, 22, 19, 4, -5, -9, 4, -5, -8, -3, -2, -2, -2, --3, -5, -5, -26, -21, 17, -29, 19, 88, -9, -6, 47, 25, 3, 6, -77, -94, -67, 26, 51, 0, -32, -44, -29, -35, --24, -19, -10, -7, -15, -4, 3, 2, 1, 2, 1, 2, 3, 2, 10, 5, -58, -18, -73, 101, -64, -148, -222, -153, -41, -118, 56, 13, -39, -41, -44, -35, -43, -40, -23, -1, 22, 37, 36, 27, 10, -3, -3, -1, -2, -2, -1, -2, -1, -3, --2, -30, -140, -163, 125, 54, -25, -39, -42, -61, -90, -102, -96, -83, -75, -58, -41, -16, 0, 12, 16, 15, 15, 17, 28, -34, 30, 15, 5, 1, 3, 3, 3, 2, 3, 1, -3, 18, 61, 111, -15, -29, -22, -28, -40, -50, -45, -46, -6, 11, -14, 11, 5, 0, -6, -14, -23, -25, -21, -15, -15, -9, 0, 3, 2, -5, -8, -8, -6, -5, -5, -13, -16, -26, -32, --40, -30, -39, -42, -40, -39, -27, -18, -13, -5, 3, 15, 20, 24, 28, 21, 15, 10, 5, -1, -9, 1, 10, 17, 18, -23, 25, 23, 14, 13, 5, -1, -12, -12, -14, -14, -23, 42, 26, 26, 22, 18, 16, 14, 13, 14, 13, 12, 11, 10, -8, 7, 8, 8, 7, 10, 6, 5, 10, 12, 20, 23, 28, 27, 25, 27, 25, 27, 28, 27, 29, 28, 26, 5, 8, -10, 9, 9, 8, 7, 6, 6, 6, 7, 7, 7, 7, 8, 7, 7, 7, 7, 8, 1, 5, 20, 4, 9, 28, 25, -25, 23, 23, 22, 21, 9, 4, 26, 12, 6, 17, 15, 24, 16, 19, 17, 24, 24, 18, 18, 18, 26, 20, 19, 20, -21, 21, 23, 20, 17, 21, 13, -4, -32, 14, -6, -33, -33, -32, -33, -29, -29, -32, 0, 21, -33, -4, -14, 26, 14, -17, 15, 36, 38, 24, 22, 24, 43, 23, 18, 20, 26, 33, 40, 35, 29, 26, -8, 8, 13, -5, -9, 5, 3, 6, --5, 14, 13, -8, 10, 2, -5, 11, 12, 33, 24, 29, 22, 57, 61, 34, 28, 27, 67, 34, 33, 33, 43, 47, 56, -41, 33, 18, 4, -2, 6, -19, -23, -15, -25, -18, -40, -18, -17, -34, 1, 8, -13, 7, -7, 18, 3, 3, 2, 69, -84, 46, 31, 45, 97, 41, 13, 19, 45, 74, 97, 81, 62, 42, 9, 4, -10, -25, -17, -13, -2, -3, -2, -5, -7, --29, -6, -1, -42, -14, 73, 108, 146, 151, 132, 67, 39, 72, 30, 4, -5, 42, 90, 119, 47, -9, -37, -60, -55, -50, --67, -42, -24, 28, 18, 0, 5, 1, 3, 2, 7, 8, 24, 48, 62, 69, -22, 12, -13, -41, -61, -95, -74, 7, 20, -47, 54, -56, -110, -82, -31, 30, 88, 79, 55, 13, -11, -8, 9, -4, -6, -2, -1, -1, -2, -1, -3, -2, -16, -10, -20, -8, 29, 105, 18, 40, 159, 183, 181, 165, 37, -28, -36, 96, 151, 115, 51, 0, -22, -28, -9, 12, 16, 10, -6, -3, 3, 1, 1, 1, 1, 1, 2, 1, 7, 2, -46, -8, -74, 60, -31, -48, -32, -22, 41, 139, 90, 50, -14, -13, --22, -21, -15, 1, 21, 36, 42, 42, 31, 27, 8, -3, -3, -1, -1, -1, -1, -1, -1, -1, -2, -24, -138, -151, 124, -125, 108, 81, 78, 58, 24, -10, -27, -23, -4, -6, 2, 22, 18, 18, 19, 16, 24, 37, 43, 48, 30, 14, 4, 1, -2, 2, 2, 1, 1, 2, -1, 23, 53, 145, -33, 10, 30, 14, 2, -10, -5, 7, 7, 3, -4, 5, 10, 11, 11, -6, -6, -10, -14, -19, -14, -5, 8, 9, 3, -4, -5, -5, -4, -2, -2, -7, -12, -14, -21, -13, -19, -27, -26, -22, --19, -4, 6, 16, 22, 32, 40, 39, 36, 34, 27, 21, 16, 14, 12, 6, 10, 15, 20, 19, 20, 19, 14, 11, 9, -2, -4, -10, -11, -13, -16, -18, 21, 29, 31, 33, 33, 36, 39, 43, 37, 30, 24, 18, 14, 9, 10, 11, 11, 11, -10, 12, 11, 23, 30, 31, 37, 48, 46, 45, 41, 40, 36, 33, 32, 27, 30, 30, 24, 23, 23, 25, 27, 27, 27, -29, 27, 26, 25, 24, 22, 20, 21, 20, 20, 20, 20, 21, 22, 15, -2, 29, 20, 2, 1, 2, 2, 3, 3, 3, -16, 26, 1, 15, 27, -22, -6, -24, -16, -17, -15, -16, -19, -25, -25, -24, -15, -21, -21, -21, -21, -21, -18, -20, -18, --26, -7, 11, 38, -17, 5, 32, 30, 30, 26, 30, 31, 24, 9, -16, 32, 14, 17, -21, -18, -16, -12, -10, -15, -29, --34, -30, -10, -26, -32, -32, -32, -26, -16, -16, -17, -18, 18, -12, -6, -16, -15, -16, -23, -25, -23, -16, -16, -21, -11, --2, -12, -21, -1, -3, -11, -1, 0, 4, -8, -37, -46, -44, -2, -27, -28, -30, -30, -26, -12, -17, -23, -10, -4, -13, --3, -35, -26, -22, -21, -28, -33, -20, -14, -34, -3, -1, -14, -12, -12, -16, -19, -12, -4, 18, 9, -36, -57, -44, 12, --31, -62, -68, -62, -36, -2, 3, -2, 5, 11, -15, -7, -34, -18, -8, -1, 2, 3, -2, -4, -19, -7, -6, -40, -33, -69, 51, 71, 83, 78, -9, -49, -28, -59, -71, -72, -18, 47, 108, 40, -19, -70, -101, -112, -79, -56, -53, -19, 23, 15, -0, 3, -1, 0, 1, 4, 3, 14, 38, 54, 59, -30, -14, -24, -45, -48, -101, -86, 4, 4, 32, 57, -42, -102, -99, --70, -35, -6, 12, 1, -9, -10, -11, 4, -9, -6, -1, -1, 0, 0, -1, -2, -1, -7, -12, 7, -32, 48, 107, 33, -17, 29, 48, 31, 17, -62, -97, -105, -6, 41, 30, -20, -39, -22, -27, -21, -2, 5, 0, -5, 3, 3, 1, 1, 0, -0, 0, 1, 0, 5, 1, -34, 3, -71, 11, -111, -156, -211, -181, -82, 82, 79, 54, -25, -25, -39, -39, -50, -45, -32, --11, 9, 29, 35, 18, -1, -5, -2, -1, -1, -1, 0, -1, -1, -1, -1, -27, -129, -136, 163, 104, -9, -43, -42, -54, --77, -94, -92, -78, -65, -51, -34, -9, 6, 17, 19, 23, 25, 28, 43, 37, 24, 10, 2, 2, 2, 1, 1, 1, 1, -2, 1, 24, 60, 136, 6, -4, -12, -16, -32, -47, -49, -55, -22, -10, -10, -12, -15, -18, -18, -22, -28, -29, -23, -14, --12, -5, 6, 2, -1, -5, -4, -2, -2, -1, -2, -6, -11, -18, -20, -22, -35, -48, -52, -48, -47, -37, -31, -29, -18, --5, 9, 17, 25, 33, 25, 18, 12, 7, -1, -5, 7, 12, 16, 13, 15, 11, 11, 0, 5, -5, -6, -16, -18, -20, --19, -30, 32, 7, 7, 6, 3, 2, 1, 1, 4, 6, 6, 7, 8, 11, 10, 11, 11, 11, 13, 10, 17, 15, 19, -27, 32, 33, 29, 27, 29, 21, 18, 20, 17, 20, 19, 11, 11, 2, 6, 5, 6, 6, 5, 4, 5, 6, 8, 9, -10, 11, 11, 11, 11, 10, 10, 9, 13, 22, 35, 13, 25, 43, 40, 39, 35, 36, 34, 31, 20, 8, 34, 22, 9, -11, -7, 22, 11, 13, 10, 15, 15, 12, 10, 11, 18, 12, 12, 12, 12, 13, 16, 13, 10, 17, -10, -25, -34, -7, --28, -36, -39, -38, -36, -36, -37, -39, -22, 2, -36, -26, -29, 17, 13, 10, 6, 21, 23, 15, 11, 13, 30, 15, 9, -8, 10, 15, 26, 20, 20, 12, -24, -1, 0, -16, -20, -2, -10, -11, -19, 2, 7, -12, 2, -8, -16, 4, -5, 26, -25, 22, 14, 38, 38, 25, 13, 12, 46, 21, 19, 15, 18, 22, 39, 24, 24, 3, -12, -12, 1, -28, -32, -10, -26, --13, -29, -10, -16, -24, -4, -1, -20, -3, -16, 16, 11, -2, -9, 38, 50, 32, 9, 21, 66, 26, -3, -10, -1, 24, -60, 48, 42, 20, -9, -2, -13, -25, -12, -2, 0, 2, 7, 0, 2, -11, -2, -2, -32, -16, 43, 81, 136, 146, 141, -62, 27, 59, 27, 9, 4, 48, 102, 145, 82, 26, 1, -42, -44, -51, -68, -27, -7, 24, 9, -1, 2, -1, -2, -1, -2, 1, 8, 26, 40, 40, -25, 29, 22, -20, -46, -97, -90, -9, 7, 45, 76, -32, -96, -91, -42, 11, 58, 48, 34, --8, -21, -11, 3, -7, -4, 0, -1, 0, 1, 0, -1, 0, -5, -1, 5, -7, 60, 122, 47, 37, 72, 132, 143, 128, -59, -2, -49, 73, 134, 132, 62, 11, -7, -15, 7, 21, 17, 13, -3, 5, 1, 1, 0, 0, 0, 0, 0, 0, 3, -2, -31, 11, -69, -56, -107, -107, -99, -106, -40, 93, 90, 65, -23, -18, -33, -33, -30, -13, 7, 21, 31, 32, 20, 15, --3, -4, -1, 0, -1, 0, 0, 0, 0, 0, 0, -18, -112, -106, 131, 118, 57, 10, 24, 9, -6, -22, -40, -37, -27, --24, -11, 11, 16, 20, 26, 26, 36, 44, 43, 45, 23, 8, 0, 1, 1, 1, 0, 0, 0, 1, -1, 23, 44, 132, --25, 8, 26, 15, 9, 0, 2, 3, 4, -1, -7, -5, -7, -11, -9, -8, -9, -8, -7, -13, -9, 1, 5, 4, 1, --3, -2, -2, 1, 1, 1, -1, -6, -8, -15, -8, -37, -35, -28, -28, -23, -14, -7, 0, 7, 17, 26, 32, 37, 41, -35, 28, 22, 18, 18, 8, 6, 12, 17, 13, 9, 7, 2, 1, -3, -6, -12, -17, -21, -27, -35, -34, 1, 9, 12, -15, 18, 22, 27, 31, 31, 29, 26, 24, 21, 19, 19, 20, 21, 22, 22, 23, 14, 27, 30, 31, 33, 41, 39, 34, -28, 28, 26, 21, 20, 14, 15, 16, 13, 23, 22, 25, 26, 27, 28, 29, 28, 29, 29, 29, 30, 29, 29, 29, 29, -29, 28, 31, 20, 10, -1, 24, 11, 2, 1, 1, 2, 0, -1, -1, 6, 18, -2, 3, 33, -12, 11, -15, -8, -8, --8, -5, -6, -12, -13, -12, -7, -10, -10, -11, -12, -12, -9, -11, -10, -18, 10, 20, 21, 0, 15, 19, 18, 18, 16, -22, 22, 18, 19, 2, 17, 23, 22, -7, -10, -6, -8, 5, 4, -8, -14, -14, 0, -11, -17, -20, -25, -20, -7, -6, --10, -8, 17, -6, 6, -11, -10, -2, -17, -16, -9, -5, -7, -8, -2, 3, -2, -9, 13, 8, -5, 9, 2, 24, 21, --4, -16, -19, 9, -5, -7, -11, -20, -18, 2, -5, -13, -6, 3, -8, 4, -29, -22, -10, -17, -20, -15, -11, -6, -18, -0, 2, -6, -2, 4, -5, -15, -7, -12, 38, 47, 10, -15, -13, 20, -4, -32, -46, -57, -34, 10, 13, 1, 2, 6, --18, -4, -28, -10, -1, 2, 7, 4, 3, 0, -4, -4, -1, -27, -19, 77, 54, 77, 100, 104, 23, -11, 12, -26, -43, --43, -5, 57, 116, 72, 19, -40, -70, -80, -48, -34, -31, 3, 17, 8, 0, 0, -3, -1, -1, 1, 1, 3, 22, 38, -57, -3, 9, -23, -35, -47, -87, -79, -6, 0, 35, 76, -16, -82, -93, -63, -20, 18, 26, 5, -12, -10, -7, 3, -7, --3, -1, 0, 1, 1, 0, 0, 0, -3, -4, 6, -17, 77, 113, 46, 23, 24, 96, 102, 71, 0, -60, -106, -5, 61, -86, 22, -13, -13, -17, -12, 17, 21, 8, 3, 3, 2, 0, 0, -1, 0, 0, 0, 0, 2, 4, -20, 16, -71, -117, --130, -110, -127, -136, -80, 35, 93, 88, -6, -10, -36, -42, -45, -34, -24, -8, 2, 20, 27, 9, -6, -3, -1, 0, 0, -0, 0, 0, 0, -1, 1, -14, -93, -85, 162, 135, 29, -20, -15, -19, -28, -45, -54, -50, -36, -31, -19, 4, 10, 17, -20, 29, 35, 42, 54, 39, 17, 5, -1, 1, 0, 0, -1, -1, -1, 1, -1, 23, 48, 126, 17, 22, 12, 11, -3, --19, -26, -32, -21, -19, -22, -21, -23, -26, -22, -21, -23, -21, -16, -8, -4, 4, 13, 4, -1, -2, 0, 2, 1, 3, -1, 1, -3, -3, -5, 3, -29, -40, -41, -36, -34, -26, -23, -22, -12, -3, 8, 16, 23, 31, 25, 19, 13, 11, 6, -7, 15, 14, 14, 9, 8, 1, 1, -7, -2, -9, -9, -16, -19, -22, -23, -29, 14, -2, -1, 1, 2, 4, 6, 9, -12, 13, 14, 15, 16, 20, 19, 19, 19, 20, 20, 18, 26, 24, 29, 32, 37, 36, 31, 29, 28, 20, 14, 15, 12, -13, 12, 3, 22, 8, 13, 13, 14, 15, 15, 15, 16, 17, 19, 20, 21, 22, 22, 22, 22, 21, 21, 19, 29, 35, -35, 29, 38, 41, 39, 38, 35, 35, 34, 31, 29, 20, 28, 29, 23, -8, -23, 1, -4, -4, -6, -4, -5, -7, -8, --8, -3, -6, -6, -7, -8, -8, -4, -6, -7, -4, -25, -27, -9, -25, -31, -12, -18, -18, -15, -17, -17, -19, -26, -19, --14, -27, -23, -5, -2, -6, -10, -3, -3, -7, -13, -11, 2, -5, -11, -17, -21, -18, -5, -7, -3, -12, -20, -13, -12, --24, -26, -12, -25, -29, -28, -14, -6, -15, -10, -15, -22, -12, -16, 7, 10, 6, -2, 9, 5, 0, -16, -16, 9, -1, --4, -14, -22, -20, 2, -6, -3, -16, -22, -20, -5, -34, -31, -7, -20, -10, -14, -5, -10, -14, -7, -8, -22, -16, -21, -0, 4, -12, -23, 3, 8, 3, -23, -17, 15, 1, -27, -51, -67, -48, -1, 1, 6, -8, -17, -11, -11, -21, -4, 3, -3, 5, 4, 2, 3, 0, 0, -4, -23, -21, 21, 35, 88, 104, 114, 33, -4, 20, -2, -8, -1, 37, 95, 148, 104, -50, 9, -44, -55, -57, -56, -17, 5, 14, 3, -1, -1, -2, -2, -1, -1, 0, 0, 9, 19, 18, -24, 21, 22, -17, --37, -95, -100, -32, -11, 34, 82, -11, -81, -102, -67, -26, 7, 10, 5, -23, -18, -8, -1, -6, -2, 0, 1, 1, 1, -1, 0, 1, -3, 1, 0, -9, 77, 114, 62, 23, -17, 64, 81, 58, 38, -16, -89, 5, 68, 103, 44, 5, -2, -8, -9, 18, 10, 8, 0, 4, 0, 0, 0, -1, -1, 0, -1, 0, -1, 8, -25, 18, -78, -171, -140, -124, -147, -158, -106, -15, 77, 77, -19, -23, -49, -51, -54, -41, -25, -10, 4, 12, 9, 2, -9, -1, -1, 0, 0, 1, 1, 1, 1, 1, -0, -5, -73, -58, 124, 98, -4, -61, -41, -50, -48, -46, -60, -60, -58, -46, -30, -8, 5, 15, 24, 29, 38, 42, 41, -33, 14, 3, -1, 0, -1, -1, -1, -1, -2, 0, -3, 17, 36, 95, -4, 10, 17, 15, 10, 0, -7, -20, -14, -14, --17, -21, -28, -36, -33, -27, -19, -14, -7, -6, -1, 6, 5, 2, 0, 0, 1, 2, 2, 3, 4, 3, 0, -1, -6, --2, -42, -38, -30, -31, -27, -24, -21, -20, -14, -6, 2, 13, 24, 34, 29, 23, 18, 15, 15, 7, 4, 8, 10, 5, -2, -2, -4, -5, -6, -8, -13, -17, -23, -31, -37, -38, -6, -10, -5, -2, 1, 5, 9, 13, 18, 22, 24, 25, 26, -27, 26, 27, 28, 28, 29, 28, 20, 27, 25, 26, 25, 25, 22, 16, 12, 10, 9, 6, 5, 3, 0, -1, 7, 15, -16, 18, 19, 20, 21, 22, 23, 24, 26, 28, 30, 31, 31, 31, 30, 30, 29, 31, 18, 14, 18, 19, 13, 21, 19, -19, 18, 16, 14, 12, 7, 10, 12, 5, 30, 0, 14, 2, 3, 4, 1, 8, 8, 5, 2, 2, 5, 3, 3, 2, -0, 0, 3, 2, 0, -2, 11, 7, -11, 7, 4, -10, -12, -11, -9, -6, -6, -7, 9, 11, -13, 9, 4, 9, 2, -4, -2, 18, 22, 14, 7, 5, 11, 8, 2, -5, -12, -9, 6, 6, 3, 3, -1, -2, 9, -11, -12, 4, -13, -12, --5, 2, 3, 0, 2, 0, -1, 2, 14, 18, 9, 18, 3, 40, 46, 32, 15, 8, 20, 19, 17, 8, -6, -6, 16, -9, 3, -4, -1, -7, 4, -25, -21, -2, -14, -9, -5, -5, -3, -5, -1, 0, -7, 2, 6, 9, -1, -2, -22, 45, -69, 53, 24, 17, 27, 27, 4, -21, -44, -27, 21, 23, 12, 0, -6, -14, -5, -17, -1, 2, 3, 4, 2, 2, 1, -0, -1, 0, -17, -8, 59, 60, 96, 121, 136, 71, 42, 64, 19, -1, -1, 22, 74, 121, 101, 56, 0, -33, -41, -26, --27, -10, 13, 8, 2, -1, -1, -2, -1, -1, -1, 0, -1, 7, 20, 37, 7, 34, 13, -1, -25, -63, -70, -22, -5, -34, 79, -1, -65, -89, -57, -7, 39, 38, 17, -10, -9, -3, 0, -5, -1, 0, 1, 1, 1, 1, 0, 1, -1, -2, -5, 2, 91, 125, 74, 39, 27, 139, 171, 133, 79, -3, -88, 9, 84, 136, 73, 24, 1, -3, 4, 29, 24, 9, 4, -1, 1, 0, 0, -1, -1, 0, -1, 0, -2, 7, -16, 19, -71, -208, -111, -40, -39, -65, -56, -7, 94, 112, 23, 8, --28, -37, -36, -22, -12, -1, -1, 8, 10, -1, -7, 0, 0, 0, 0, 1, 1, 1, 0, 1, -1, 0, -50, -36, 124, -134, 55, 1, 7, 8, 11, 3, -19, -24, -11, -9, 1, 17, 17, 19, 25, 32, 41, 48, 51, 33, 9, 0, -1, 0, --1, -1, -1, -1, -2, 0, -5, 12, 34, 93, 18, 42, 40, 39, 28, 13, 1, -5, -16, -22, -26, -22, -22, -26, -19, --13, -12, -8, -6, -4, 3, 10, 13, 4, 0, 1, 2, 2, 2, 3, 3, 4, 2, 7, 6, 20, -22, -25, -23, -20, --17, -11, -7, -5, 1, 7, 12, 18, 24, 30, 26, 21, 17, 17, 17, 18, 16, 12, 9, 4, 0, -5, -5, -7, -5, --8, -9, -12, -16, -20, -23, -24, -7, -10, -6, 0, 4, 9, 14, 20, 21, 22, 23, 23, 24, 27, 26, 27, 27, 27, -25, 27, 29, 30, 32, 29, 30, 29, 24, 21, 18, 12, 7, 5, 3, 2, 2, -4, 25, 15, 18, 20, 22, 23, 25, -26, 26, 27, 28, 30, 31, 31, 31, 31, 30, 30, 30, 28, 36, 35, 25, 36, 36, 27, 26, 26, 24, 24, 23, 20, -26, 26, 15, 24, 34, -23, -22, -19, -16, -17, -19, -18, -19, -21, -23, -23, -21, -20, -20, -22, -25, -25, -21, -22, -20, --24, -24, -13, 15, -30, -18, 13, 7, 6, 8, 7, 8, 6, -13, -27, 10, -12, -5, -21, -14, -17, -21, -18, -20, -21, --30, -30, -24, -22, -26, -36, -46, -45, -30, -27, -23, -28, -6, -20, -14, -24, -25, -17, -33, -35, -25, -19, -15, -13, -15, --14, -19, -21, -13, -5, -2, -2, -11, -7, -13, -16, -36, -39, -28, -19, -20, -35, -52, -53, -29, -29, -27, -28, -21, -21, --7, -32, -22, -3, -8, -4, -3, 0, -2, -3, -5, -10, -16, -17, -14, -10, -3, -13, -28, -13, -10, -11, -44, -48, -35, --20, -40, -78, -112, -101, -51, -34, -24, -28, -16, -18, -7, -13, 3, 2, 3, 3, 1, 1, 1, 1, 1, -3, -15, -19, -26, 15, 52, 74, 99, 22, -15, -5, -27, -31, -20, 6, 62, 122, 108, 64, 3, -46, -65, -55, -35, -11, 10, 4, 1, --2, -1, -2, -1, -1, 0, 0, 0, 2, 9, 14, -5, 19, 19, -4, -21, -78, -91, -38, -17, 26, 73, 5, -61, -103, --87, -57, -32, -15, -15, -25, -8, -3, -2, -3, 0, 1, 1, 1, 0, 0, 0, 1, 0, -1, 2, -3, 94, 110, 57, --3, -87, 18, 49, 22, 29, -25, -113, -51, 10, 72, 35, 11, 5, 1, 4, 11, 4, 1, 2, 1, 0, 0, -1, -1, --1, 0, -1, 1, -3, 7, -13, 16, -80, -253, -153, -109, -156, -160, -135, -60, 59, 89, 10, -15, -52, -54, -64, -57, -48, --34, -21, -7, 0, -8, -6, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, -31, -23, 93, 61, -51, -101, -90, -87, --70, -55, -65, -69, -69, -54, -36, -17, -1, 13, 25, 33, 38, 37, 36, 21, 5, 0, 0, -1, -1, -1, -1, -1, -2, --1, -3, 4, 30, 48, 26, 17, 10, 16, 7, -5, -20, -39, -32, -27, -26, -31, -39, -47, -40, -32, -23, -16, -7, 2, -7, 9, 6, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 6, -36, -36, -32, -33, -31, -30, -29, -32, -26, --22, -15, -4, 9, 21, 18, 14, 11, 10, 9, 8, 7, 6, 4, -1, -3, -5, -4, -5, -4, -5, -7, -10, -17, -24, --28, -32, -9, -25, -20, -17, -14, -12, -9, -5, 2, 9, 15, 19, 23, 28, 26, 27, 27, 27, 28, 26, 26, 21, 17, -19, 16, 10, 5, 1, -1, -6, -8, -8, -10, -8, -11, -17, 5, 2, 6, 6, 7, 8, 9, 9, 12, 14, 16, 19, -21, 24, 23, 23, 23, 22, 22, 21, 18, 22, 37, 14, 20, 37, 36, 34, 32, 30, 28, 25, 12, 3, 26, 11, 20, -5, 2, 13, 7, 8, 4, 11, 12, 12, 8, 7, 7, 9, 9, 6, 4, 3, 7, 6, 4, 7, -2, -15, -34, -1, --16, -29, -34, -33, -29, -28, -28, -27, -11, 5, -35, -14, -18, 14, 9, 8, -2, 16, 22, 23, 13, 10, 10, 15, 11, -1, -8, -7, 6, 7, 7, 3, -21, -4, 3, -15, -18, 1, -14, -13, -6, 2, 5, 3, 0, -8, -7, 3, 4, 21, -20, 21, 1, 35, 44, 47, 26, 17, 14, 28, 26, 12, -5, -7, 14, 9, 10, -10, -13, -11, -2, -21, -17, 1, -8, -0, -2, -1, -3, 1, -3, -5, -11, 0, -1, 16, 12, 0, -28, 28, 56, 67, 34, 20, 13, 35, 20, -15, -46, -38, -6, 13, 12, -9, -19, -11, -7, -6, 4, 1, 3, 1, 1, 1, 1, 0, 1, 0, -10, -4, 32, 50, 91, 114, 139, -87, 64, 81, 46, 31, 35, 44, 83, 120, 124, 89, 37, -4, -14, -21, -28, 3, 11, 1, 0, -1, -1, -1, 0, 0, -0, 0, 0, 0, 6, 17, 11, 42, 31, 14, -12, -50, -65, -34, -4, 38, 80, 17, -43, -80, -57, -14, 30, 29, 19, --9, -7, 0, -3, -1, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 12, 87, 111, 71, 30, 4, 125, 173, 136, -119, 38, -65, 12, 84, 150, 108, 61, 21, 15, 21, 28, 13, 6, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, -3, -5, -10, 14, -82, -258, -85, 3, 11, -23, -48, -53, 66, 103, 43, 11, -29, -34, -34, -21, -10, -4, -5, -5, -9, -7, --3, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 3, -16, -11, 51, 75, 40, -5, -2, 1, 14, 19, -8, -21, -15, --12, -2, 10, 12, 17, 29, 35, 44, 48, 38, 22, 2, -2, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, 18, 41, -11, 46, 52, 50, 41, 29, 15, 8, -15, -25, -30, -25, -25, -30, -20, -11, -5, 1, 4, 4, 10, 13, 8, 2, 1, -2, 2, 2, 2, 2, 2, 3, 2, 8, 10, 23, -21, -17, -11, -12, -8, -5, -2, 0, 2, 4, 4, 8, 12, 16, -15, 13, 12, 13, 16, 17, 9, 5, 2, -2, -5, -5, -6, -4, -4, -4, -6, -6, -12, -17, -24, -21, -25, -17, -11, --4, 2, 7, 13, 20, 21, 23, 24, 24, 25, 27, 26, 27, 27, 27, 26, 29, 24, 26, 25, 19, 17, 15, 11, 7, -2, 0, -3, -6, -7, -10, -10, -11, 15, 15, 16, 18, 20, 22, 24, 26, 26, 26, 27, 28, 29, 30, 30, 30, 29, -29, 29, 29, 28, 22, 11, 28, 20, 10, 9, 9, 8, 7, 6, 5, 11, 17, 0, 8, 33, -23, -8, -25, -17, -18, --20, -18, -18, -18, -22, -23, -23, -20, -20, -22, -26, -26, -23, -23, -21, -28, -10, 3, 20, -17, 0, 18, 13, 12, 15, -16, 17, 17, 2, -17, 17, 6, 11, -21, -17, -17, -22, -16, -15, -14, -25, -28, -29, -20, -23, -35, -47, -47, -35, -29, --26, -27, 4, -16, -8, -19, -19, -13, -26, -25, -13, -12, -12, -4, -12, -9, -9, -18, -1, -8, -10, -4, -17, -4, -5, --1, -24, -32, -38, -14, -14, -30, -52, -56, -36, -31, -31, -27, -13, -16, -6, -22, -10, 2, -1, 2, 2, 2, 1, 2, --2, -8, -8, -11, -3, -13, -11, -14, -33, -9, 4, 13, -24, -41, -52, -15, -26, -68, -111, -108, -65, -41, -33, -32, -13, --19, -3, -4, 5, 0, 1, 0, -1, 0, 0, -1, 1, 0, -9, -12, 32, 10, 25, 50, 87, 32, 4, 6, -16, -20, --10, -1, 42, 92, 107, 77, 6, -33, -54, -39, -15, -3, 9, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 3, -13, 11, 15, 16, 15, 3, -45, -64, -37, -13, 26, 67, 27, -27, -78, -80, -60, -37, -15, -14, -13, 3, 0, -2, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 2, 3, 87, 103, 62, -1, -83, 20, 58, 27, 36, -18, -108, -70, -13, -61, 50, 35, 20, 15, 7, 11, 4, -2, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, -2, 3, -5, 11, -78, -256, --112, -47, -92, -96, -106, -101, 34, 84, 42, -1, -43, -48, -59, -56, -51, -40, -34, -19, -6, -10, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 1, 1, -5, -6, 43, 22, -46, -76, -82, -70, -51, -37, -48, -57, -55, -43, -29, -16, -3, 10, -23, 33, 36, 36, 33, 13, 0, -1, 0, -1, -1, -1, 0, 0, 0, -1, 0, -6, 18, 14, 43, 36, 20, 27, 13, --1, -20, -36, -36, -33, -33, -34, -38, -44, -34, -27, -20, -12, -3, 9, 13, 12, 7, 1, 2, 2, 1, 1, 0, 1, -1, 2, 3, 4, 11, 15, -21, -25, -26, -26, -25, -24, -23, -27, -22, -21, -17, -11, -4, 3, 3, 2, 2, 3, 1, -6, 6, 1, -1, -5, -5, -4, -2, -2, 0, 0, -1, -3, -8, -13, -16, -19, -11, -26, -22, -19, -16, -15, -13, -10, --4, 2, 7, 12, 16, 22, 21, 21, 21, 22, 22, 22, 27, 16, 13, 12, 9, 1, -3, -5, -7, -11, -15, -14, -16, --13, -15, -22, 7, -4, 1, 0, 1, 2, 3, 3, 5, 7, 9, 11, 13, 16, 15, 15, 15, 15, 15, 13, 19, 26, -37, 14, 24, 36, 35, 32, 30, 28, 27, 24, 15, 4, 24, 15, 12, -2, -15, 6, 0, 1, -3, 1, 3, 5, 0, --1, -3, 1, 1, -1, -4, -4, -2, -2, -3, 1, -18, -27, -29, -14, -27, -26, -32, -31, -27, -28, -27, -25, -23, -10, --30, -27, -27, 2, 4, -1, -10, 1, 6, 13, 3, -1, -6, 6, 4, -8, -17, -19, -9, -6, -2, -8, -27, -10, -7, --19, -22, -6, -16, -15, -8, -3, 1, 1, -6, -14, -14, -5, -10, 7, 15, 10, -7, 13, 19, 36, 11, 3, -10, 16, -16, -2, -18, -22, -6, -6, 0, -19, -21, -15, -8, -15, -8, 2, 0, 4, 1, 1, -1, 2, -3, -7, -14, -8, -12, -3, 11, -7, -34, -3, 19, 50, 14, -4, -22, 19, 13, -28, -63, -64, -30, -14, -3, -21, -25, -9, -6, 1, 4, 0, -0, -1, -1, 0, 0, 0, 1, 2, -6, -7, 9, 27, 63, 79, 118, 74, 50, 54, 41, 38, 45, 48, 76, 108, 127, -102, 53, 9, -7, -24, -24, 8, 4, 0, -2, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 4, 7, 35, 46, 32, -8, -37, -58, -43, -10, 28, 60, 25, -23, -69, -64, -39, -6, 2, 8, -7, -1, 1, -3, 1, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, -2, 12, 77, 97, 54, 3, -51, 55, 107, 84, 99, 37, -63, -22, 33, 100, 94, 68, 31, 25, -25, 18, 1, 2, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 2, -5, 8, -80, -248, -78, -3, -7, -24, -56, --84, 22, 70, 52, 5, -37, -40, -45, -37, -28, -22, -20, -20, -18, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 1, -12, -11, -6, -28, -34, -26, -8, 6, -14, -29, -31, -26, -14, -6, 1, 10, 25, 29, 36, 37, 24, -11, -2, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, -5, 7, 0, 16, 37, 43, 41, 34, 24, 10, 1, -18, -25, --29, -26, -28, -33, -21, -12, -5, 2, 8, 11, 14, 12, 3, 2, 2, 1, 1, 0, 0, 0, 0, 1, 3, 3, 9, -18, -20, -14, -7, -11, -8, -7, -6, -6, -5, -5, -7, -4, -2, 1, 2, 2, 3, 5, 8, 8, -1, -3, -4, -5, --5, -2, -1, 0, 0, 1, 0, -1, -6, -11, -19, -17, -28, -20, -14, -9, -4, 0, 4, 8, 11, 14, 17, 18, 19, -21, 21, 22, 23, 23, 24, 26, 18, 18, 13, 8, 4, 1, -2, -4, -7, -8, -9, -13, -14, -16, -17, -16, 1, 8, -8, 9, 10, 12, 13, 15, 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 21, 15, 9, 7, 12, 6, 4, 3, -2, 1, 0, -1, -2, -2, 4, -4, -4, 20, -12, 4, -13, -8, -8, -10, -6, -6, -4, -9, -10, -14, -8, -8, -11, --13, -14, -13, -12, -11, -16, 1, 6, 2, -3, 4, 3, -1, -1, 3, 4, 6, 7, 6, -2, 1, 8, 7, -8, -8, --6, -13, -3, 1, 6, -6, -12, -19, -6, -7, -19, -29, -31, -24, -17, -15, -14, 1, -8, -1, -14, -14, -5, -13, -10, --3, -2, -3, 4, -6, -6, -2, -8, 6, -1, -1, 5, -10, 11, 16, 26, 1, -9, -27, 3, 5, -11, -30, -35, -24, --18, -17, -18, -6, -10, -5, -10, -1, 2, 1, 2, 1, 1, 0, 1, 0, -4, -5, -4, 2, -5, -4, -4, -27, 6, -28, 47, 9, -16, -44, 3, 1, -37, -75, -79, -52, -28, -23, -23, -12, -13, -1, 1, 2, -1, 0, -1, 0, 0, 0, --1, 0, 2, -4, -6, 32, 24, 27, 50, 91, 56, 36, 32, 17, 12, 14, 13, 38, 71, 104, 88, 25, -3, -23, -15, --3, 3, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 20, 15, 26, 15, -18, -35, -29, -6, -21, 47, 29, -10, -58, -70, -56, -28, -9, -6, -1, 7, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, --1, 3, 69, 85, 50, 3, -48, 41, 84, 60, 62, 8, -73, -51, -3, 65, 73, 62, 33, 27, 14, 12, 3, -1, 2, --1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -3, 5, -72, -214, -62, 12, 2, -10, -46, -94, 16, 72, 76, 23, --21, -30, -40, -38, -37, -31, -32, -24, -13, -7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -12, --18, -4, -10, -30, -19, -7, -2, -15, -27, -24, -19, -9, -3, 3, 11, 22, 30, 32, 33, 26, 7, -3, -1, -1, 0, -0, 0, 0, 0, 0, 0, 1, -4, 4, -5, 39, 48, 35, 36, 23, 10, -7, -14, -27, -30, -32, -29, -27, -29, -17, --10, -8, -1, 6, 14, 16, 12, 4, 1, 1, 1, 0, 0, 0, 0, 0, -1, 2, 0, 9, 20, -8, -11, -12, -12, --11, -9, -9, -10, -9, -9, -10, -10, -9, -8, -7, -6, -5, -2, -2, 5, 3, -2, -3, -5, -3, -1, 0, 0, 1, -1, 1, 2, -2, -4, -6, -8, -14, -18, -16, -12, -9, -8, -6, -3, 0, 3, 5, 8, 10, 14, 14, 15, 16, 17, -17, 18, 22, 13, 10, 6, 3, -2, -4, -5, -6, -9, -12, -13, -14, -13, -14, -17, 8, -2, 0, 1, 1, 2, 3, -4, 4, 5, 6, 7, 8, 10, 10, 10, 10, 10, 11, 9, 18, 22, 22, 13, 19, 19, 18, 16, 14, 13, 12, 11, -11, 5, 10, 11, 9, -13, -20, -8, -9, -9, -12, -10, -10, -6, -11, -12, -15, -10, -10, -12, -14, -15, -14, -13, -12, --11, -21, -21, -8, -20, -21, -9, -14, -15, -11, -11, -10, -7, -19, -18, -10, -20, -16, -12, -6, -9, -16, -13, -10, -1, --12, -16, -23, -9, -9, -20, -28, -31, -27, -21, -15, -19, -17, -12, -13, -19, -17, -8, -12, -11, -6, -5, -3, 0, -8, --14, -14, -12, -13, -7, 3, -1, -12, -7, -6, 16, -10, -17, -35, -5, -3, -19, -33, -38, -30, -23, -16, -24, -19, -14, --8, -5, 1, 3, 2, 4, 2, 2, 0, 1, 0, -4, -10, -10, -12, -10, 4, -9, -27, -21, -8, 26, -10, -31, -55, --7, -6, -43, -76, -83, -64, -41, -23, -29, -19, -7, -1, 3, 0, -1, -1, -2, -1, -1, 0, -1, 0, 2, 0, -6, -5, 6, 19, 32, 75, 41, 20, 11, 17, 21, 24, 22, 42, 70, 100, 88, 44, 7, -12, -24, -11, 6, 0, -1, 0, -1, 0, 1, 1, 0, 0, 0, 0, -1, 0, 1, 6, 15, 33, 31, 20, -23, -45, -41, -11, 18, 40, 28, -6, -54, --71, -67, -47, -29, -12, -7, 3, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 3, 54, 73, 40, --11, -79, -8, 36, 29, 59, 24, -54, -47, -13, 45, 69, 67, 41, 32, 22, 6, -6, 1, 1, -1, 0, 0, 0, 0, -0, 0, 0, 0, -1, 1, -3, 1, -64, -189, -73, -25, -31, -35, -60, -89, -13, 38, 58, 10, -27, -35, -44, -44, -41, --34, -29, -27, -19, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, -39, -71, -33, -29, -44, -38, --26, -16, -26, -39, -43, -36, -24, -18, -5, 6, 20, 25, 28, 27, 15, 3, -2, 0, 0, 0, 0, 0, 1, 0, 1, -0, 1, -3, 3, -15, 27, 28, 23, 23, 16, 9, -4, -13, -22, -24, -26, -26, -29, -32, -21, -13, -6, 2, 10, 16, -16, 10, 1, 2, 0, 0, 0, -1, -1, -1, -1, -1, 1, 0, 5, 12, -14, -10, -7, -11, -11, -12, -12, -13, -13, --14, -16, -14, -12, -11, -9, -7, -5, -4, -3, -2, -6, -6, -4, -4, -1, 1, 1, 2, 2, 3, 2, 3, 0, -4, --8, -9, -19, -19, -15, -13, -10, -9, -8, -6, -2, 2, 5, 8, 9, 12, 12, 13, 15, 16, 17, 18, 14, 9, 3, -0, -3, -5, -6, -7, -8, -9, -10, -12, -14, -15, -18, -17, -6, -3, -2, -2, -1, -1, 0, 0, 1, 2, 3, 4, -5, 7, 7, 7, 8, 8, 8, 9, 4, 4, 10, 1, 0, 6, 4, 2, 1, 0, -1, -1, -6, -6, 1, -6, 4, --3, 3, -2, -1, 0, -3, 1, 2, 5, 0, -1, -5, 0, 0, -2, -4, -4, -4, -3, -3, -3, 1, -4, -16, 1, --5, -13, -16, -15, -11, -10, -9, -6, -2, 2, -16, -3, -5, 1, 0, 0, -6, 3, 9, 16, 4, -1, -11, 3, 3, --6, -12, -15, -13, -7, -6, -4, -9, -3, -2, -11, -10, 0, -3, -2, 1, 1, 1, 5, -2, -7, -3, -2, 4, 2, -5, 8, -5, 14, 21, 37, 14, 4, -19, 10, 13, 2, -11, -16, -13, -7, -5, -10, -6, -7, -4, -1, 1, 1, 1, -1, 0, 0, -1, -1, 1, -1, -5, -2, -1, -2, 2, -1, -21, 6, 29, 56, 21, -4, -35, 11, 16, -13, -39, -47, --37, -19, -12, -16, -12, -5, 1, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -3, 17, 25, 25, 40, 80, -60, 47, 37, 38, 36, 29, 20, 29, 48, 86, 82, 40, 20, 5, -1, 0, 4, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, -1, 3, 15, 19, 23, 35, 26, 1, -17, -25, -1, 19, 34, 33, 7, -32, -51, -46, -20, -9, -2, -3, 4, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 43, 66, 38, 5, -25, 41, 83, 75, -76, 32, -35, -26, 8, 60, 84, 78, 46, 36, 22, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, -1, -2, -53, -150, -38, 25, 55, 36, -7, -68, -8, 41, 77, 31, -5, -20, -25, -24, -24, -20, -23, -23, -15, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, -44, -53, 28, 40, 18, 22, 25, 20, 5, -9, -6, --9, -3, -2, 2, 8, 17, 23, 27, 30, 18, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -27, 41, 35, 30, 22, 14, 3, 3, -16, -23, -27, -22, -19, -17, -5, 1, 2, 9, 13, 16, 16, 9, 1, 1, 0, -0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 16, -2, 1, 1, 0, 0, 0, 1, 1, 0, -2, -5, -8, -10, -13, --11, -9, -7, -5, -3, 1, -3, -5, -3, -2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 0, -1, 0, -16, -11, -9, --6, -3, -1, 0, 3, 3, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 14, 14, 8, 5, 0, -2, -2, -2, -3, --4, -4, -5, -7, -9, -11, -12, -11, 3, 0, 0, 1, 2, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, -6, 7, 6, 10, 9, 4, 8, 7, 0, -1, -2, -3, -3, -4, -5, 0, 2, -5, 1, 6, -16, -14, -16, -12, -13, --14, -14, -14, -11, -15, -16, -19, -14, -14, -16, -17, -18, -18, -16, -15, -17, -14, -8, 4, -15, -10, 1, -2, -2, 1, -1, 2, 5, -8, -15, 4, -7, -3, -18, -11, -13, -16, -16, -15, -6, -17, -21, -29, -15, -14, -22, -28, -31, -31, -25, --20, -20, -4, -10, -12, -12, -8, -4, -5, -5, -3, -3, -3, 0, -5, -9, -10, -12, -8, -15, -7, -7, -13, -13, -13, -6, -17, -23, -42, -14, -11, -22, -31, -37, -36, -27, -22, -19, -10, -9, -2, 2, 2, 2, 2, 2, 1, 1, 1, 1, -2, 1, -3, -8, -7, -18, -6, -10, -21, -23, -13, 14, -18, -38, -63, -19, -13, -41, -64, -74, -70, -47, -31, -25, -10, --3, 2, 0, -1, -1, -1, -1, -1, 0, 0, 0, -1, 0, 2, -3, 7, 0, -5, 6, 45, 23, 8, -11, 7, 14, -8, 3, 13, 37, 69, 67, 32, 10, -9, -13, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 7, 5, 19, 29, 27, -4, -22, -27, -8, 10, 25, 31, 10, -31, -59, -68, -59, -39, -22, -6, 3, -2, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -3, 32, 49, 26, -13, -72, -33, -1, 4, 27, 9, -43, -55, -37, -9, 45, 58, 45, 35, 19, 2, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -40, -119, --58, -28, -17, -23, -43, -69, -28, 15, 59, 21, -9, -25, -34, -38, -41, -35, -30, -25, -11, 1, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, -1, 8, -39, -81, -18, 1, -17, -15, -14, -15, -22, -32, -34, -32, -23, -20, -7, 4, -13, 19, 20, 21, 11, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 2, -7, 30, 22, 8, 6, 0, --5, -14, -18, -20, -20, -21, -22, -23, -22, -13, -7, -3, 4, 10, 17, 15, 6, 0, 1, -1, 0, -1, -1, -1, -1, --1, -1, -1, -1, 0, 6, -4, -3, -4, -5, -8, -9, -10, -13, -13, -16, -17, -17, -16, -15, -14, -12, -10, -9, -10, --8, -7, -5, -2, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, -1, -9, -14, -13, -12, -12, -12, -12, -12, --9, -6, -3, -1, 1, 2, 3, 4, 5, 6, 8, 8, 9, 1, -3, -3, -3, -4, -4, -4, -4, -5, -5, -6, -7, --9, -12, -13, -6, -8, -7, -7, -7, -7, -7, -7, -6, -6, -5, -4, -4, -2, -2, -2, -2, -1, -1, -1, 0, 3, -10, -4, 0, 5, 3, 2, 1, 0, 0, -1, -5, -8, 3, -3, -5, -1, -5, 1, 0, 0, -2, 1, 2, 5, 1, -0, -4, 0, 1, 0, -1, -2, -3, -1, -2, 1, -5, -11, -20, -4, -12, -17, -18, -17, -14, -14, -13, -11, -10, -3, --19, -12, -13, 0, 1, 0, -4, 1, 5, 13, 4, -1, -9, 2, 4, -3, -6, -9, -10, -6, -4, -3, -13, -2, -5, --6, -3, 2, 1, 2, 2, 2, 2, 4, -1, -6, -6, -1, -4, -3, 5, 4, -3, 7, 11, 30, 10, 3, -16, 6, -9, 1, -4, -8, -10, -6, -2, -7, -6, -4, -1, 2, 1, 0, 0, 0, 0, 0, 0, -1, 1, 1, -2, -3, -5, --6, 3, -2, -14, -2, 15, 42, 14, -6, -31, 4, 12, -8, -21, -30, -33, -20, -10, -11, -9, 0, 0, 0, -1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 17, 17, 24, 55, 44, 34, 19, 37, 40, 29, 20, 21, 32, 63, -66, 46, 30, 19, 5, 0, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 4, 16, 23, 32, -25, 6, -10, -23, -4, 11, 21, 29, 14, -17, -38, -42, -27, -19, -8, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, -1, 1, -2, 19, 41, 22, -1, -24, 10, 44, 53, 60, 35, -11, -18, 0, 35, 64, 68, 46, 35, -24, 10, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, -26, -90, -32, 6, 54, 31, -1, --41, -25, 9, 57, 29, 5, -14, -16, -17, -19, -16, -16, -19, -10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, --1, 1, -3, 9, -41, -64, 34, 54, 38, 35, 30, 20, 5, -7, -7, -13, -8, -7, -2, 3, 10, 14, 18, 22, 9, --2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 4, 16, 24, 19, 11, 8, 5, 1, 4, -8, -14, --17, -15, -12, -10, -1, 4, 7, 12, 13, 15, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, -4, 1, 7, 8, 6, 5, 3, 3, 3, 0, -3, -7, -9, -11, -13, -11, -10, -8, -7, -5, -4, -7, -4, -1, 1, -0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 3, -14, -7, -6, -5, -3, -2, -1, 1, 0, 0, 1, 0, 0, --1, 1, 1, 3, 4, 4, 7, 4, 2, -1, -2, -2, 0, 0, 0, 0, 0, 0, -1, -3, -6, -8, -7, -3, -1, --2, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 1, 2, 1, -1, -5, 0, -4, -8, -9, --9, -10, -10, -10, -10, -7, -3, -10, -7, 1, -10, -4, -12, -8, -8, -9, -9, -9, -6, -9, -10, -13, -10, -9, -10, --11, -11, -12, -11, -10, -12, -4, 1, 2, -7, -2, 1, 0, 0, 2, 2, 3, 5, -1, -7, 3, 0, 1, -11, -8, --7, -9, -9, -7, -2, -10, -14, -20, -10, -9, -14, -17, -20, -22, -17, -14, -11, 1, -6, -6, -3, -2, -1, -1, -1, --1, -1, -1, -1, -1, -3, -5, -7, -2, -12, -6, -3, -6, -5, -6, 7, -9, -15, -29, -11, -7, -13, -17, -21, -25, --18, -15, -10, -2, -3, 2, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, -3, -2, -14, -6, -4, -9, -9, --2, 16, -9, -26, -46, -15, -8, -24, -36, -45, -49, -34, -24, -15, -2, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, -1, 0, 0, 7, 4, -10, -1, 26, 16, 7, -12, 11, 16, 5, -2, 1, 16, 42, 47, 27, 16, 3, 2, -5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 3, 4, 9, 24, 25, 10, -3, -15, -4, -6, 14, 27, 16, -14, -39, -52, -48, -33, -22, -5, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, 11, 28, 14, -7, -40, -24, -3, 9, 18, 8, -22, -40, -32, -1, 30, 46, 40, 31, 16, 3, 1, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, -13, -64, -36, -15, 18, 2, -18, -39, -28, 1, 48, 28, -9, -11, -18, -23, -27, -23, -20, -18, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 6, -20, --56, 16, 36, 23, 19, 12, 2, -7, -16, -15, -19, -15, -13, -5, 1, 5, 12, 13, 16, 6, -2, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, -1, 3, 20, 17, 1, -4, -7, -11, -15, -14, -14, -13, -14, -14, -13, -10, -3, -1, 2, 6, 9, 14, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, 4, 6, 3, 3, -0, -2, -4, -6, -8, -10, -13, -13, -13, -14, -13, -11, -10, -9, -10, -8, -6, -3, 1, 1, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 2, 3, -5, -8, -8, -9, -9, -9, -10, -10, -9, -7, -6, -6, -5, -4, -3, -3, -2, -1, -0, 1, 3, -3, -3, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -3, -5, -7, -4, -7, -6, -6, -6, -7, -7, --7, -7, -7, -7, -7, -6, -6, -6, -5, -5, -5, -4, -5, -1, 2, 4, -4, -1, 0, 0, -1, -1, -2, -2, -2, --3, -6, -1, -2, -6, -4, -8, -2, -3, -3, -3, -3, -3, 0, -3, -4, -6, -3, -3, -4, -4, -4, -5, -4, -4, --2, -8, -10, -12, -7, -10, -8, -9, -8, -7, -7, -7, -5, -8, -6, -11, -11, -10, -5, -2, -3, -5, -4, -3, 3, --3, -6, -11, -3, -2, -6, -7, -9, -11, -9, -6, -5, -8, -3, -4, 0, 1, 2, 1, 2, 2, 2, 1, 2, 1, --1, -4, -3, -6, -7, 1, -1, -2, -3, -2, 12, -1, -5, -16, -4, -1, -5, -6, -9, -13, -9, -5, -6, -4, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 1, -1, -3, -10, 0, -4, -7, -9, -2, 17, -2, -14, -28, --6, 0, -11, -17, -24, -31, -22, -12, -9, -3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -0, 3, 2, 5, 26, 20, 14, -1, 22, 27, 16, 10, 8, 16, 35, 40, 36, 25, 16, 5, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 9, 16, 22, 21, 8, -3, -16, -5, 4, 11, 21, 13, -9, --27, -36, -33, -26, -15, -7, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 9, --6, -27, -18, 2, 18, 29, 21, -4, -19, -14, 8, 32, 42, 36, 27, 19, 5, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 1, -2, -2, -47, -29, -13, 29, 11, -7, -22, -28, -9, 32, 23, 12, -7, -10, -13, -15, --13, -11, -12, -3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 3, -12, -45, 26, 41, 36, 29, -22, 12, 1, -9, -11, -15, -12, -11, -5, 0, 4, 7, 10, 13, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 1, -2, 4, 8, 8, 0, -6, -6, -7, -8, -5, -7, -8, -9, -9, -8, -6, -1, 3, 6, 9, 10, 12, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 3, 8, 8, 7, 5, 2, 1, -1, -4, --6, -9, -9, -10, -10, -9, -8, -7, -7, -6, -6, -6, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, -8, -5, -5, -5, -5, -5, -4, -4, -4, -3, -3, -3, -4, -5, -4, -3, -2, -2, -1, 0, -2, -2, -2, -0, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -3, -3, -6, -3, -3, -3, -3, -3, -3, -3, -3, -4, -4, -4, --4, -4, -4, -4, -3, -3, -3, -2, -4, -5, -6, -5, -6, -6, -6, -6, -6, -6, -7, -7, -7, -5, -8, -8, -4, --4, -1, -5, -3, -3, -3, -3, -3, -1, -3, -4, -6, -4, -3, -4, -4, -4, -5, -4, -4, -4, 0, 0, -4, -1, -0, -1, -1, -1, -1, -1, 0, 0, 0, -2, -3, 0, -1, -4, -3, -3, -3, -2, -1, 2, -3, -5, -9, -4, -3, --5, -6, -8, -10, -8, -6, -4, 0, -2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -2, 0, -7, --3, -1, -1, 0, 1, 8, -1, -5, -13, -4, -2, -4, -5, -7, -11, -8, -6, -3, 1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -8, -4, -1, -2, -1, 4, 14, -1, -11, -22, -7, -2, -8, -12, -17, --24, -17, -12, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, -3, 1, 14, -12, 9, -5, 13, 16, 6, 0, -1, 5, 20, 26, 22, 18, 11, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, -1, 6, 6, 16, 17, 12, 5, -8, -2, 2, 8, 18, 14, -2, -18, -27, -26, -20, -14, --5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 6, -3, -14, -11, 1, 15, -16, 10, -5, -18, -15, 1, 19, 29, 27, 21, 13, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -1, 3, -28, -19, -4, 30, 15, 0, -15, -19, -5, 27, 23, 16, -1, -5, -8, -11, -10, -9, -8, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -20, 30, 42, 39, 32, 25, 14, 5, -3, -3, --9, -8, -7, -3, -1, 1, 5, 7, 10, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -5, 9, -3, -7, -9, -10, -11, -7, -7, -7, -7, -6, -5, -2, 1, 4, 5, 7, 7, 9, 3, -1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 4, 9, 6, 7, 4, 3, 1, -1, -3, -5, -7, -7, -8, -9, --8, -7, -6, -6, -5, -5, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, -3, -4, --4, -5, -4, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -4, -4, -3, -2, -1, -2, 0, 0, 0, 1, 1, 1, -1, 1, 1, 1, 0, 0, -1, -1, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5, -5, -4, --4, -4, -4, -2, -2, -3, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -4, -3, -5, -4, -5, -4, -3, -3, --3, -4, -4, -3, -4, -4, -5, -4, -4, -4, -4, -4, -5, -4, -4, -3, -5, -5, -4, -2, -2, -1, -1, -1, -1, --1, -1, 0, -2, -2, -4, -5, -5, -5, -3, -3, -3, -5, -4, -2, -5, -6, -8, -5, -4, -5, -6, -7, -8, -7, --5, -4, -3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, -7, -2, -3, -1, -4, -5, -1, -5, -7, -11, -6, -4, -6, -5, -7, -9, -7, -5, -4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 1, 1, -8, -2, -2, -1, -6, -6, 2, -7, -12, -18, -9, -5, -9, -10, -14, -19, -15, -10, -5, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, -4, -3, 5, 4, 1, -9, 7, 11, -4, 1, 0, 5, 12, 17, 18, 13, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, -1, 3, 7, 10, 12, 7, 2, -7, -3, 1, 5, 12, 9, -2, -13, -20, -22, -19, -13, -6, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 2, -5, -17, -19, -12, 1, 7, 6, -2, -14, -15, --5, 8, 17, 18, 14, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -15, --17, -11, 9, 1, -5, -9, -16, -9, 13, 14, 11, 0, -4, -7, -9, -8, -6, -5, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -12, 14, 22, 23, 18, 13, 7, 1, -5, -8, -10, -9, -8, -4, -2, -0, 3, 4, 5, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -6, -9, -10, --10, -9, -7, -5, -4, -3, -4, -4, -2, 0, 2, 3, 5, 5, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, 1, 6, 5, 4, 3, 1, 0, -2, -4, -5, -6, -6, -6, -5, -5, -4, -4, -4, -4, --4, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -3, -3, -4, -4, -4, -4, -5, --4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, -4, -3, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -4, -4, --3, -1, -2, -1, -1, -1, -1, -1, -1, -1, -2, -1, -3, -4, -4, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, --3, -2, -2, -1, -1, -1, -1, 0, 0, 1, -1, -1, -2, -1, -1, -1, -1, -2, -2, -2, -2, -1, -1, 1, 1, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, -2, 0, 0, 0, 0, 0, 3, 0, -1, -3, -1, --1, -1, 0, -1, -2, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, --2, -1, 0, 0, 0, 1, 4, 0, -3, -6, -2, -1, -1, -1, -3, -6, -5, -3, -1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 4, 4, -1, 6, 7, 3, 1, 0, 2, 5, -8, 10, 8, 7, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 4, 5, -6, 6, 3, -3, -1, 0, 2, 6, 5, 1, -4, -7, -8, -7, -5, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -3, -4, 0, 6, 6, 5, 1, -5, -5, 0, 5, 9, 9, 7, -5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, -6, -1, 12, 7, 2, --2, -7, -4, 7, 9, 8, 2, 0, -1, -2, -2, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 13, 17, 18, 15, 12, 9, 4, 1, -1, -3, -3, -3, -2, -1, 0, 1, 2, 2, -1, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, -4, -5, -5, -4, -2, -2, -2, --2, -1, -1, 0, 1, 2, 2, 3, 3, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 4, 3, 3, 3, 2, 1, 0, -1, -1, -2, -2, -2, -3, -2, -2, -2, -2, -1, -2, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, --2, -2, -2, -2, -2, -2, -2, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 1, -2, -1, -2, -}; -#else const uint32_t defaultHRIR_rom_AlphaL48[470 * 128] = { 0x3e094000,0x3cda8000,0x3e23c000,0x3e006000,0x3e095000,0x3e097000,0x3e103000,0x3e12e000,0x3e151000,0x3e103000,0x3e0d2000,0x3e09d000,0x3e070000,0x3e04b000,0x3e036000,0x3e025000,0x3e011000,0x3e008000,0x3dfce000,0x3dee8000,0x3e15b000,0x3cac0000,0xbc8e0000,0xbd856000,0x3d35c000, 0xbc7e0000,0xbd71c000,0xbd7dc000,0xbd708000,0xbd3a0000,0xbd778000,0xbd84c000,0xbd7d0000,0xbc7d0000,0x3d78c000,0xbd724000,0xbcb68000,0xbcfd8000,0x3e0e2000,0x3e209000,0x3e1fe000,0x3e294000,0x3e3c0000,0x3e44e000,0x3e464000,0x3e3a7000,0x3e2f6000,0x3e247000,0x3e1bd000,0x3e163000, @@ -4937,2418 +2499,6 @@ const uint32_t defaultHRIR_rom_AlphaL48[470 * 128] = { 0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb8800000,0xb9000000,0xb9000000,0xb9000000,0x38800000,0x00000000,0x00000000,0x00000000, 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x38800000,0xb9000000,0xb8800000,0xb9000000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_AlphaR48[470 * 128] = { -2196, 2055, 2634, 445, -369, -977, 986, -254, -1006, -1055, -992, -750, -965, -1016, -964, -253, 725, -1060, -270, 350, 2396, 1908, 2023, 2056, 2065, -2085, 2102, 2123, 2160, 2205, 2258, 2307, 2385, 2350, 2307, 2200, 2195, 2575, 2233, -523, 1684, 585, 688, 1092, 956, 1429, 995, 518, 902, 1045, -933, 514, 811, 791, 1014, -314, 1774, 2130, 2067, 2234, 2242, 2311, 2356, 2403, 2493, 2631, 2806, 2983, 3172, 3150, 3010, 2706, 2561, 2977, 2095, -591, 1011, 269, 461, 408, 379, 57, 691, -152, 817, 30, 502, 72, 464, 473, 472, 305, 1196, 2087, 1942, 2289, 2301, 2431, 2525, 2634, -2820, 3088, 3368, 3714, 4075, 3996, 3727, 3150, 2814, 3273, 1673, 270, 926, 506, 332, 410, 295, 237, 110, 289, 53, 30, 188, 121, 277, --122, 439, -16, 923, 1804, 1830, 2217, 2240, 2414, 2554, 2662, 2934, 3355, 3849, 4446, 5093, 5049, 4574, 3661, 3005, 4523, 2532, 658, 805, 355, -157, 446, 191, 212, 162, 194, 176, 76, -24, 79, 263, 93, 504, 121, 1067, 2259, 2282, 3041, 3278, 3612, 3777, 4275, 4593, 4615, 5428, -5629, 5481, 5301, 4970, 4669, 4123, 4933, 2098, 225, 1075, 1033, 517, 716, 231, 258, -1, 142, 124, 108, 221, 270, 345, 121, 552, 96, -1255, 2535, 2606, 3478, 3691, 4092, 4415, 4374, 4434, 4550, 5110, 5456, 5611, 5761, 5605, 5431, 4662, 6428, 2877, -190, 1267, -29, 914, -148, 388, -80, 386, 202, 110, 206, 225, 288, 576, 255, 727, 377, 1175, 2633, 2590, 3447, 4129, 4967, 5733, 6061, 6050, 5669, 5084, 5152, 5737, 6137, -6505, 7335, 6358, 7085, 3390, 494, 2002, 163, 1000, 442, 289, 76, 327, 438, 259, 155, 40, 337, 270, 292, 845, -90, 1371, 2446, 2406, -3060, 3621, 4193, 4593, 5062, 5305, 5370, 5575, 5591, 5533, 5619, 5677, 6238, 6170, 6175, 4135, 451, 944, 1127, 247, 878, 783, 163, 302, 65, -247, 345, 290, 318, 233, 570, 692, -88, 1583, 2478, 2142, 2383, 2699, 3323, 4093, 4559, 4990, 5375, 4956, 4762, 5020, 4817, 4977, 5609, 5591, -4324, 3122, 217, 850, 365, 231, 603, 356, 556, 433, 764, 151, 197, 347, 527, 546, 803, 797, 410, 1493, 2581, 2336, 2535, 2814, 3105, -3254, 3371, 3359, 3332, 3492, 3793, 4050, 3975, 3870, 3815, 3729, 3278, 2082, 789, 1472, 576, 708, 506, 406, -34, 723, -282, 1030, -35, 552, -1, 543, 343, 608, 339, 1497, 2328, 1834, 2043, 2136, 2343, 2452, 2860, 3192, 3520, 3612, 3661, 3739, 3626, 3457, 3405, 2945, 2576, 2360, -709, -1681, 540, 701, 1255, 1110, 1758, 1302, 665, 1150, 1399, 1254, 697, 1077, 1100, 1228, -365, 1879, 2080, 1958, 2050, 2011, 2040, 2021, 2269, 2419, -2586, 2712, 2857, 3013, 2885, 2757, 2704, 2515, 2417, 3051, 508, -406, -1144, 1203, -333, -1235, -1327, -1280, -964, -1242, -1330, -1260, -349, 861, -1379, --387, 388, 2889, 2284, 2379, 2383, 2380, 2385, 2356, 2418, 2461, 2508, 2575, 2633, 2723, 2660, 2630, 2593, 2571, 2815, 6056, 5670, 6409, 4305, 2553, --6, 4941, 2694, 221, 98, 90, 314, -38, -97, -104, 2582, 4458, -348, 2500, 3937, 5899, 5252, 5524, 5587, 5635, 5692, 5752, 5828, 5925, 6034, -6167, 6294, 6500, 6409, 6311, 6055, 6010, 6795, 6679, 2118, 5399, 3677, 3518, 4187, 3749, 4449, 4129, 3327, 4000, 3909, 3781, 2911, 3380, 3792, 3853, -1791, 5311, 5528, 5717, 6007, 6116, 6292, 6469, 6653, 6917, 7255, 7667, 8116, 8652, 8603, 8298, 7516, 7192, 7527, 6418, 4204, 4260, 2660, 2731, 2461, -2371, 1665, 2451, 1314, 2753, 1256, 2307, 1498, 2300, 2479, 2418, 2635, 3940, 5206, 5396, 6086, 6285, 6640, 6983, 7369, 7866, 8518, 9218, 10102, 11085, -10891, 10313, 8773, 7972, 8153, 5939, 3334, 3680, 2522, 1969, 1805, 1185, 979, 619, 885, 277, 371, 623, 584, 1079, 456, 1563, 1195, 2920, 4413, -4879, 5763, 6013, 6516, 7002, 7471, 8256, 9239, 10429, 11970, 13783, 13760, 12721, 10242, 8640, 10866, 7777, 5264, 4026, 2500, 1913, 2199, 1420, 1220, 911, -889, 677, 487, 289, 677, 1177, 1089, 2020, 1994, 3764, 6147, 6877, 8578, 9341, 10247, 10965, 11941, 12701, 12875, 15261, 15879, 15492, 14726, 13825, 12989, -11479, 12890, 7589, 4448, 4855, 4615, 2914, 2598, 1437, 1195, 628, 774, 750, 704, 1033, 1223, 1509, 1692, 2582, 2209, 4431, 6809, 7450, 9309, 10221, -11509, 12755, 13213, 13726, 14062, 15608, 16431, 16482, 16544, 15982, 15284, 13511, 15947, 10153, 4128, 5118, 2821, 3799, 1215, 1850, 947, 1533, 1345, 880, 1036, -1236, 1453, 2415, 2042, 2884, 2897, 4187, 6671, 7279, 9216, 10541, 12305, 14146, 15368, 16079, 16123, 15117, 14898, 15532, 15738, 16330, 17419, 16360, 15681, 11159, -6110, 6544, 2652, 3878, 2162, 1767, 1016, 1548, 2421, 1433, 962, 1073, 1846, 1785, 2393, 3600, 2251, 4620, 6231, 6638, 8150, 9892, 11414, 12532, 13866, -14642, 14945, 15869, 16092, 16060, 15199, 14373, 14009, 15025, 14462, 12023, 6278, 5416, 4868, 2675, 3273, 3318, 1682, 1910, 1311, 1472, 1610, 1668, 1935, 1922, -2833, 3207, 2269, 5798, 7046, 6750, 6834, 7809, 9266, 11210, 12447, 13644, 14655, 14203, 14009, 14732, 13950, 14057, 14442, 14747, 11660, 10048, 5019, 5196, 3254, -3036, 3216, 2371, 2608, 2218, 2972, 1392, 1534, 1931, 2546, 3103, 4012, 3947, 3621, 5690, 7497, 7206, 7178, 7901, 8689, 9397, 10082, 10570, 10997, 11501, -12095, 12436, 12251, 11959, 11328, 11351, 9661, 7761, 5302, 6023, 4029, 3798, 3054, 2551, 1675, 3092, 1400, 3966, 1377, 2997, 1666, 3110, 2894, 3582, 3536, -5606, 6991, 6324, 6744, 7155, 7643, 7954, 8952, 9759, 10562, 10896, 11160, 11484, 11153, 10776, 10464, 9560, 8060, 8128, 1693, 6503, 4302, 4296, 5472, 4933, -6253, 5885, 4522, 5704, 5767, 5532, 4204, 4875, 5350, 5161, 1815, 6669, 6688, 6708, 6873, 6915, 7062, 7135, 7675, 8025, 8409, 8692, 8995, 9369, 9011, -8727, 8533, 8210, 7595, 8724, 5423, 3085, -327, 6654, 3264, -164, -375, -412, 56, -518, -626, -572, 3189, 5949, -987, 3018, 5042, 8265, 7199, 7489, -7489, 7514, 7528, 7489, 7620, 7721, 7828, 7985, 8120, 8331, 8184, 8117, 8006, 7990, 8715, 3420, 3260, 2349, 5566, 6579, 6420, 4521, 6148, 6442, 6469, -6321, 5903, 6149, 6206, 6071, 6029, 4729, 6205, 6140, 5359, 2357, 3053, 3001, 3025, 3077, 3128, 3189, 3270, 3313, 3341, 3344, 3359, 3382, 3383, 3379, -3388, 3231, 3499, 3917, 7140, 3745, 4909, 4553, 3824, 3745, 2942, 3528, 4203, 3664, 3322, 3527, 4002, 3810, 4091, 3767, 5627, 3290, 2829, 3162, 3143, -3296, 3428, 3638, 3891, 4052, 4113, 4092, 4134, 4233, 4278, 4265, 4209, 3988, 3303, 4212, 5541, 4226, 4398, 3778, 3471, 3124, 3208, 2208, 3300, 2060, -2865, 2507, 3006, 2822, 3209, 3291, 3985, 3222, 2401, 3048, 3066, 3378, 3669, 4044, 4505, 4747, 4887, 4941, 4989, 5063, 5130, 5154, 4997, 4516, 3439, -5176, 5562, 3471, 3028, 2792, 2136, 1512, 1063, 906, 635, 674, 705, 659, 896, 1213, 1812, 1777, 2772, 2433, 1939, 2440, 2613, 3050, 3470, 4038, -4807, 5286, 5433, 5422, 5550, 5818, 6071, 6117, 5732, 5102, 2954, 4312, 6762, 4803, 3927, 3361, 2339, 2025, 1530, 1167, 1187, 893, 902, 930, 1277, -1535, 2076, 2449, 3780, 3678, 3713, 4935, 5157, 5658, 6265, 7346, 7149, 7441, 8064, 8353, 8249, 7624, 7070, 6734, 6692, 5699, 4269, 7054, 8673, 5916, -4907, 4021, 2788, 2526, 1732, 1485, 1335, 1121, 1040, 1133, 1330, 1781, 3011, 3384, 4744, 4311, 3771, 4376, 4008, 4770, 5589, 6748, 8395, 9566, 10068, -10439, 10326, 9215, 8726, 8018, 7218, 6511, 3125, 7932, 10073, 5773, 6775, 4264, 4020, 2555, 2025, 1903, 2612, 1856, 1861, 2121, 2205, 2598, 3754, 3408, -4480, 3955, 2571, 3522, 3415, 2852, 2532, 2628, 3721, 5648, 8269, 9855, 9374, 7545, 6388, 5344, 2992, 4302, 684, 6766, 9878, 4884, 5660, 3597, 3124, -2524, 2186, 2330, 4231, 2186, 1583, 2329, 2709, 3181, 4080, 4116, 5401, 3999, 2577, 3192, 3184, 3972, 4283, 4557, 5122, 5833, 6637, 8066, 9097, 9710, -7892, 6351, 3956, 3846, 3416, 5138, 9770, 6690, 4900, 4789, 3574, 3521, 3402, 3124, 3381, 2513, 2402, 2846, 3392, 3901, 4250, 4715, 6231, 5547, 4445, -4847, 3924, 4265, 4255, 4540, 4883, 5483, 6204, 7957, 9178, 9815, 9749, 8963, 6662, 6376, 6294, 6873, 9911, 7509, 6220, 5781, 4483, 3915, 3640, 3610, -3491, 3128, 2987, 3162, 3587, 4456, 5170, 5595, 6560, 6151, 5351, 5525, 4424, 4377, 4598, 5388, 6347, 7684, 9136, 9646, 9718, 9606, 9965, 9778, 8734, -8273, 7409, 8174, 8313, 6789, 6599, 5635, 5169, 4324, 4686, 4122, 4931, 4281, 4441, 4597, 4759, 5078, 5603, 5829, 6661, 6029, 5482, 6262, 6411, 6692, -6695, 6747, 6887, 6963, 7035, 7494, 8023, 8529, 8523, 8690, 8728, 8536, 7051, 7460, 8889, 7228, 7733, 7261, 6626, 6314, 5888, 6501, 6871, 6610, 6008, -6146, 6498, 6463, 6770, 6445, 7356, 6785, 6633, 7062, 7184, 7493, 7792, 8123, 8015, 8007, 7969, 7944, 7848, 7853, 7659, 7543, 7357, 7381, 6432, 5916, -8727, 9170, 7939, 7901, 8914, 8101, 8176, 8048, 7706, 7877, 8015, 7859, 8817, 7956, 7763, 8926, 8487, 5715, 6214, 6312, 6373, 6462, 6508, 6622, 6580, -6585, 6585, 6567, 6557, 6549, 6514, 6490, 6431, 6443, 6887, -1424, -1304, -2178, -256, 1830, 5438, -1205, 1464, 4816, 4931, 4923, 4784, 5121, 5215, 5276, -1543, -708, 5737, 1807, 58, -1773, -1056, -1354, -1402, -1415, -1418, -1398, -1403, -1447, -1506, -1648, -1781, -2033, -1881, -1802, -1591, -1644, -1831, -1962, 3105, --1111, 555, 751, -228, 109, -896, -682, 243, -530, -321, -249, 973, 596, 45, 312, 2812, -1069, -1074, -1304, -1531, -1563, -1565, -1482, -1435, -1540, --1770, -2210, -2707, -3428, -3224, -2978, -2306, -2181, -2131, -1247, 209, -236, 1092, 901, 869, 538, 1047, 256, 1411, 28, 1568, 436, 1419, 775, 891, -1257, 1094, 151, -889, -1085, -1663, -1712, -1704, -1543, -1469, -1605, -2014, -2740, -3816, -5265, -4714, -4221, -2725, -2286, -2064, -179, 1359, 71, 566, 945, -729, 739, 434, 548, 434, 834, 696, 645, 857, 824, 1650, 1199, 1757, 763, -311, -799, -1510, -1505, -1463, -1104, -769, -1051, -1657, -2952, -4905, --7580, -7084, -6097, -3591, -2352, -4775, -3083, -861, 355, 967, 919, 38, 447, 221, 306, 589, 728, 898, 964, 955, 919, 1395, 1399, 1962, 660, --1173, -1619, -3179, -3602, -3866, -3634, -4101, -4099, -3078, -6777, -7640, -7513, -6556, -5934, -5438, -4657, -8151, -934, 2560, 1182, 447, 1452, 1110, 1880, 1266, -1270, 1290, 650, 448, 232, 353, 587, 1157, 1109, 2372, 614, -1398, -2072, -4504, -5487, -6748, -7690, -7043, -6477, -5685, -7212, -7861, -8188, -7632, -7468, --7854, -7950, -10166, -4028, 3028, 708, 2443, 427, 2661, 1273, 1550, 1136, 2439, 1925, 1836, 1613, 1262, 583, 1947, 1309, 1405, 500, -2203, -3157, -5579, --6907, -8659, -10432, -11305, -11026, -9404, -6029, -4501, -5080, -3933, -5095, -7465, -8765, -7200, -4554, 470, -470, 2813, 439, 1717, 1394, 1680, 1692, 3306, 1338, -1016, 1699, 1330, 2024, 2048, 1108, 2637, 75, -1733, -2241, -3921, -5796, -7414, -8365, -9277, -9094, -8003, -7528, -6215, -5330, -2981, -824, 1463, -4284, -5188, --5870, -226, 175, 280, 1967, 990, 388, 2123, 1887, 3228, 1981, 1717, 2020, 2133, 2732, 2069, 2384, 4040, -67, -1911, -1817, -2033, -2891, -4343, -6253, --7212, -7891, -7945, -6289, -4501, -4049, -1596, -1669, -2500, -4292, -3406, -2787, 2648, 1440, 2805, 2270, 1505, 1845, 1912, 2452, 1339, 2871, 2488, 2215, 1840, -1686, 1207, 1871, 2971, 451, -1444, -948, -1340, -2052, -2836, -3384, -3868, -3824, -3293, -3203, -3078, -2490, -1312, -856, -520, -1894, -1158, 523, 3093, 1405, -3191, 2696, 3057, 2827, 3844, 1950, 3855, 929, 4068, 2163, 4018, 2549, 3115, 2631, 3061, 821, -551, 741, 671, 279, -247, -532, -1385, -2072, -2836, --2779, -2645, -2550, -2061, -1326, -416, -176, -324, -612, 7799, 813, 3395, 3164, 1218, 1504, -248, 228, 1844, 246, 99, 235, 2378, 1856, 1385, 1915, -6670, 571, 864, 1142, 1260, 1504, 1663, 1889, 1231, 842, 411, 140, -201, -569, -430, -407, -474, -324, -739, -2373, 2124, 5279, 9992, 8, 4607, -9242, 9537, 9516, 8945, 9632, 9787, 9679, 4522, 739, 10518, 5047, 2326, -2004, -462, -724, -618, -515, -412, -189, -378, -483, -601, -808, -987, -1215, --1176, -1176, -1151, -1183, -1556, 1100, 1026, 1885, -649, -1992, -2473, 107, -1638, -2448, -2514, -2421, -2017, -2267, -2286, -2199, -1570, -139, -2261, -1623, -592, -1638, 1048, 1117, 1049, 1001, 963, 961, 887, 880, 899, 933, 971, 990, 1068, 1052, 909, 1106, 1426, 1260, -2318, 900, -461, -308, 307, 216, -854, 490, -73, 435, 597, 352, -30, 182, 158, 493, -1117, 1258, 1584, 1376, 1287, 1150, 1069, 1052, 832, 767, 837, 916, 945, 848, 1028, -1069, 835, 1136, 2447, 1657, -247, 424, -438, 30, -4, 125, -217, 683, -11, 1091, 193, 529, 212, 572, 345, 570, 267, 1182, 1925, 1409, -1211, 910, 711, 725, 371, 388, 503, 540, 667, 592, 1048, 1001, 707, 1456, 3159, 1294, -51, 1309, 603, 392, 582, 591, 660, 638, 1074, -697, 781, 850, 953, 998, 740, 1205, 864, 1802, 2496, 2188, 1903, 1529, 1381, 1475, 927, 767, 928, 974, 691, 20, 431, 545, 629, 1664, -6000, 3607, -372, 931, 440, 499, 1160, 550, 385, 423, 523, 820, 784, 603, 568, 753, 915, 1072, 400, 604, 437, -838, -1730, -2524, -3381, --4347, -3666, -3418, -3253, -3145, -1459, 1452, 2697, 3047, 2211, 2967, 5343, 300, -2600, 252, 779, 726, 1184, 1085, 1213, 1005, 1299, 617, 397, 288, -646, 622, -14, 90, -408, 839, 1624, 1166, 1129, 214, -988, -2598, -4620, -5626, -5390, -5141, -3793, -441, 1099, 2756, 3935, 3419, 9543, 668, -3898, -552, -2359, 206, -531, 824, 798, 1097, 1900, 1411, 1251, 683, 602, 672, 70, 1167, 472, 1632, 3657, 2570, 2260, 2923, 3202, 3136, 1922, -25, --2624, -2793, -293, 3649, 6506, 7855, 10593, 8735, 11447, 4060, -1897, 2587, -201, 1737, 1150, 1552, 1051, 1454, 2025, 949, 758, 956, 774, 844, 627, -966, -193, 1563, 3585, 3000, 3044, 1794, 1639, 2047, 1952, 1843, 1576, 592, 57, -315, 3636, 6487, 9967, 8477, 5197, 3622, -1548, 436, 1575, 784, -1115, 410, 591, 834, 1390, 1411, 1279, 846, 392, 330, 185, 198, -754, -235, 807, 990, 2895, 2810, 2989, 2533, 2421, 1727, 791, -1777, -2843, --2840, -1413, 234, 3122, 2823, -161, -23, -3097, -1586, -833, -979, -96, 431, 642, 643, 206, 1218, 1327, 1059, 748, 106, -606, -569, -1021, -1348, --407, 272, 2263, 2843, 2725, 1651, 375, -1382, -3001, -3524, -3411, -3276, -3059, -2503, -1431, -1379, -2036, -2305, -1156, -395, 309, 580, 569, 904, 658, -508, 229, -21, 540, -31, 369, -166, -413, -493, -940, -531, 208, 271, 532, 479, 752, 1110, 943, 926, 879, 34, -849, -1704, -1961, -2307, --2471, -2371, -2194, -2614, -1206, -2284, -1871, -1742, -1692, -1507, -1570, -1717, -1635, -1723, -1323, -1454, -1059, -1200, -1347, -963, -164, -1796, -1728, -1860, -1849, --1995, -2210, -2402, -2456, -2550, -2584, -2569, -2467, -2477, -2351, -2288, -2242, -2296, -2194, -2386, -2698, -2414, -278, -2794, -2529, -839, -844, -823, -730, -735, --809, -734, -2479, -2595, -114, -2370, -2464, -2058, -1880, -2004, -2017, -2000, -1940, -1909, -1950, -1996, -2055, -2090, -2138, -2176, -2203, -2231, -2226, -2284, -2504, -1652, 1707, 1635, 2459, 2231, 660, 2236, 2077, 992, 970, 942, 802, 826, 793, 649, 2036, 2127, 528, 1969, 2130, 1346, 1473, 1522, 1519, 1490, -1447, 1398, 1334, 1300, 1277, 1345, 1451, 1655, 1643, 1686, 1716, 1754, 2166, 2419, 2084, 2135, 2027, 1692, 1640, 1590, 1569, 1790, 1941, 1850, 1600, -1619, 1463, 1465, 1777, 1465, 1627, 1709, 1506, 1734, 1699, 1689, 1582, 1444, 1253, 1163, 1112, 1191, 1424, 1979, 1999, 2207, 2286, 2389, 2609, 2859, -3354, 2751, 2119, 1642, 1440, 1552, 1377, 1172, 1563, 1247, 1193, 1079, 1236, 1261, 1266, 1176, 1705, 1514, 1359, 1743, 1666, 1597, 1286, 932, 524, -216, 143, 390, 1182, 2460, 2401, 2742, 2633, 2819, 2539, 2979, 3198, 2783, 2093, 1371, 1009, 1013, 844, 869, 951, 770, 810, 607, 866, 831, -947, 896, 1597, 1410, 1329, 1795, 1831, 1838, 1534, 1000, 310, 39, -296, -170, 777, 2674, 2688, 3172, 3056, 3146, 6908, 8095, 7190, 4917, 4126, -3696, 3289, 2275, 1677, 1178, 1048, 865, 685, 500, 671, 771, 1129, 683, 909, 1124, 1452, 1767, 1645, 663, -445, -1356, -2334, -3156, -4348, -191, -1861, 3944, 4304, 5407, 6561, 6869, 10452, 6066, 3844, 3067, 2805, 1897, 1386, 1021, 1259, 1265, 1246, 1041, 1032, 792, 1114, 1142, 1158, 1081, 1270, -2058, 2160, 2699, 3755, 4561, 5161, 5217, 4175, 3206, 1929, 3182, 3933, 5604, 3943, 4858, 7319, 10458, 5586, 8421, 5691, 3562, 3377, 2648, 1689, 1313, -1297, 1266, 1928, 883, 499, 289, 929, 1471, 1230, 2082, 2988, 3200, 4052, 5264, 6149, 5875, 5611, 5437, 5719, 5761, 5222, 3700, 2468, 1994, -1440, --2603, -4302, 2259, -5584, 3960, 6379, 1862, 2464, 1828, 1591, 1669, 1563, 1362, 1410, 1227, 1375, 1182, 1372, 1231, 1426, 1804, 2417, 3393, 4140, 4582, -4824, 5351, 5756, 5771, 5535, 4506, 2775, 1607, 82, -612, -4122, -7249, -12856, -6422, -6227, 278, 4939, 3056, 1690, 2259, 1218, 928, 1052, 856, 522, -1175, 1134, 499, 452, 325, 850, 424, 330, 1686, 3172, 4406, 5211, 4951, 4827, 4714, 4234, 3503, 2285, 1249, -499, -1880, -4511, -5441, -7050, -5609, --2965, -1083, 1680, 882, 756, 774, 582, 1273, 256, -90, 41, 395, 699, 549, 574, 462, 303, 419, 185, 950, 1681, 2212, 3399, 3743, 4087, -4238, 4432, 4413, 3918, 2982, 1460, -785, -2254, -3072, -4185, -3043, -2240, -1424, -1249, -1064, -467, -181, -109, 95, 124, 219, 272, 239, 13, 254, -24, 255, 224, 349, 438, 590, 900, 1078, 1301, 1831, 2386, 2967, 2581, 2280, 2142, 1308, 567, -250, -1069, -2070, -3452, -2599, -1775, -1592, -1970, --1184, -1194, -1260, -874, -738, -509, -450, -418, -206, -302, -165, -549, -728, -649, -1001, -1559, -1195, -1476, -1584, -1783, -1918, -2114, -2209, -2322, -2397, --2475, -2601, -2679, -2743, -2536, -2207, -1983, -1801, -1407, -1257, -1356, -1702, -2741, -878, -1320, -2295, -2318, -2267, -2286, -2284, -2250, -2245, -1165, -776, -2501, --1366, -1072, -1136, -1295, -1326, -1400, -1488, -1580, -1706, -1702, -1720, -1745, -1704, -1675, -1697, -1575, -1519, -1427, -1413, -1283, 583, 573, 280, 360, 1042, -2286, 144, 749, 1883, 1897, 1899, 1942, 1954, 1948, 1963, 737, 222, 2102, 827, 340, 446, 573, 545, 620, 645, 662, 649, 643, 597, 535, -463, 371, 230, 209, 283, 545, 460, 450, 214, 1950, 493, 998, 934, 612, 670, 424, 398, 628, 469, 618, 527, 860, 848, 597, 771, -1214, 380, 588, 565, 750, 846, 903, 836, 849, 751, 538, 356, 100, -188, -397, -319, 304, 258, -137, 134, 1017, 915, 1509, 1044, 909, -706, 720, 688, 929, 769, 942, 603, 835, 775, 898, 848, 763, 541, 645, 770, 1061, 1230, 1301, 1098, 1001, 678, 314, 156, -318, -877, --1367, -1030, 147, -103, -1002, 171, 1179, 283, 1112, 996, 685, 634, 410, 480, 916, 873, 799, 713, 842, 939, 838, 1075, 939, 488, 554, -600, 934, 1207, 1233, 877, 782, 422, -29, -326, -685, -1193, -1949, -1757, -555, -786, -3298, -228, 2983, 2188, 2552, 2018, 1111, 1577, 1230, 981, -1106, 896, 785, 426, 821, 965, 823, 1046, 1001, 1215, 1723, 2160, 3181, 3439, 3687, 3546, 2547, 1878, 1452, 308, -2421, -5925, -6888, -6131, -3651, --2088, -9142, 157, 4454, 1145, 434, 1051, 645, 814, 860, 1015, 1071, 1051, 1081, 789, 787, 881, 1194, 1424, 1648, 1230, 799, 895, 1234, 1395, -1742, 2178, 2889, 2966, 2410, 965, -1151, -4725, -7073, -9326, -11656, -8880, -18093, -5379, 3251, -1156, 2890, 67, 2400, 768, 1208, 999, 1734, 631, 279, -430, 989, 1106, 1580, 1537, 2028, 1335, -68, 69, -279, -634, -1176, -1931, -2631, -2871, -2409, -3163, -5462, -9267, -11186, -12758, -16301, -16421, -15980, -12370, --3521, -4463, 519, -1457, 310, -213, 961, 460, -154, 1011, 1517, 737, 991, 960, 828, 521, 1701, 1187, 302, 268, -758, -860, -2282, -4483, -6318, --7555, -7844, -8340, -8451, -8704, -10416, -10859, -10949, -13054, -9141, -10172, -6123, -4286, -3677, -1482, -1328, -744, 218, 326, 55, 597, 687, 492, 732, 857, -1112, 992, 1335, 747, 812, 482, -1055, -2376, -3612, -4184, -5376, -5613, -5071, -2842, -1944, -2667, -3935, -6083, -8361, -9019, -4963, -5460, -2216, -1692, -621, --290, -272, 119, 40, 137, 173, 163, 162, 193, -39, -168, 160, 75, 542, 716, 179, -112, -1191, -1835, -2092, -1735, -1778, -1161, -474, -752, --1247, -1166, -2037, -3226, -4366, -4928, -2257, -2249, -2664, -2648, -2505, -1825, -1146, -630, -443, -411, -237, -346, 95, -137, 174, -154, -261, -418, -156, --1338, -2378, -2399, -2734, -2926, -3345, -3743, -4081, -4431, -4749, -4277, -3844, -3466, -3197, -2854, -2625, -2504, -1043, -1091, -1309, -574, -724, -586, -547, -393, --417, -726, -760, -910, -805, -873, -938, -1041, -1144, -1091, -1097, -1271, -1070, -1151, -1246, -1202, -1100, -1032, -1146, -1157, -1223, -1307, -1433, -1519, -1434, --1403, -1323, -1246, -776, -570, -1733, -1705, -1362, -1325, -1419, -1098, -1109, -1011, -949, -906, -932, -891, -1464, -1429, -1050, -1557, -1692, -930, -1015, -1098, --1102, -1196, -1311, -1405, -1324, -1261, -1191, -1157, -1105, -1080, -1005, -941, -867, -831, -799, 1979, 1482, 1694, 1449, 785, -107, 1812, 995, -112, -146, --145, -19, -138, -150, -181, 964, 1787, -243, 925, 1608, 1940, 1734, 1848, 1908, 1968, 2042, 2128, 2193, 2275, 2372, 2380, 2292, 2116, 1909, 1734, -1493, 1545, 1040, 1378, 537, 1440, 1253, 1085, 1382, 1247, 1575, 1640, 1474, 1739, 1636, 1533, 1228, 1322, 1607, 1584, 756, 1895, 1847, 1987, 2177, -2267, 2408, 2603, 2739, 2974, 3301, 3564, 3475, 2968, 2428, 1810, 1145, 1125, 62, 425, 363, 591, 825, 906, 863, 770, 704, 1061, 1127, 1475, -1003, 1208, 1010, 1272, 1347, 1417, 1375, 1573, 1871, 1988, 2477, 2745, 3157, 3692, 4006, 4570, 5049, 5283, 4764, 3549, 2527, 1366, 223, 172, -547, --151, -45, 81, 550, 712, 574, 266, 402, 492, 1020, 819, 938, 808, 946, 1129, 1107, 1335, 1058, 1363, 1764, 2004, 2562, 2712, 3135, 3724, -4098, 4752, 5873, 6926, 6716, 5204, 3647, 1820, -181, -443, -5483, -4437, -2329, -936, -709, -481, -262, 545, 602, 833, 974, 1051, 1026, 687, 1058, -1284, 1337, 1932, 2053, 2165, 2066, 2379, 3537, 4995, 6396, 7317, 8830, 9583, 10091, 6707, 4075, 1283, -1182, -3551, -6023, -5472, -8343, -6012, -3409, -1815, --1070, 126, 515, 787, 818, 959, 1245, 1034, 952, 770, 984, 1129, 1270, 1605, 1444, 1717, 2385, 2730, 3254, 3260, 3176, 3191, 2680, 2374, 2810, -548, -965, -3066, -827, -1604, -4665, -8026, 2245, -8015, -8715, -3747, -4164, -1868, -1059, 260, 268, 693, 1390, 881, 767, 928, 1106, 1322, 1301, 1383, -1175, 1582, 2346, 1733, 1520, 1754, 2260, 2993, 1698, -309, -2508, -5154, -5705, -4775, 351, 4914, 11904, 5497, 14107, 597, -7479, -75, -2766, 69, -404, --199, 317, 641, -181, 1206, 1223, 666, 785, 818, 874, 994, 643, 1048, 1083, 1106, 1569, 1446, 1275, 1129, 1033, 988, 1044, 1343, 1477, 1128, -4473, 6804, 12113, 10719, 9493, 5277, -3705, -1581, 23, -1579, -79, 807, -149, 246, 196, 629, 745, 849, 951, 883, 674, 1179, 1197, 1599, 1147, -246, -787, -66, 708, 1655, 2479, 3085, 3350, 2016, 1888, 2688, 3578, 4804, 7628, 7285, 4422, 3646, -3194, -1106, -1382, -792, 163, -279, 648, 617, -716, 136, 232, 587, 380, 569, 1128, 645, 415, 444, 457, -31, -860, -412, -146, 145, -299, -1009, -1485, -1266, -301, 975, 1324, 1786, 3097, -3061, 2137, 616, 104, 1203, 164, 233, -96, 25, -477, 255, -421, 651, -501, 2, -652, -542, -1014, -1118, -1345, -914, -694, -1368, -1580, -1883, --2195, -2622, -1724, -924, -232, 156, 453, 813, 1451, 2013, 2696, 1962, 2239, 2378, -1470, 1287, 294, 475, 1270, 1152, 1748, 1636, 944, 1506, 1604, -1484, 530, 675, 860, 696, -1284, 1007, 1010, 889, 897, 825, 854, 731, 1287, 1588, 1957, 2286, 2641, 2931, 2722, 2481, 2402, 2257, 2079, 2747, -1208, -173, -2107, 1874, -102, -1859, -2016, -2087, -1914, -2212, -2355, -2333, -203, 1414, -2635, -534, 634, 2382, 1821, 1951, 1946, 1950, 1959, 1913, 2020, -2091, 2170, 2258, 2339, 2507, 2401, 2370, 2282, 2303, 2531, -915, -1120, -1729, 491, 1841, 3007, -158, 1725, 2975, 3073, 3071, 2840, 3128, 3161, 3074, -1779, 218, 3268, 1888, 754, -1343, -742, -898, -895, -898, -901, -915, -884, -864, -832, -875, -897, -880, -972, -1069, -1193, -1264, -1749, -1619, 1702, --740, 442, 411, -115, 272, -280, 49, 746, 157, 49, 155, 744, 430, 397, 188, 2023, -648, -948, -883, -964, -970, -1005, -1014, -952, -907, --840, -939, -972, -934, -1066, -1221, -1478, -1636, -2660, -1960, -269, -520, 282, 167, 347, 666, 1095, 400, 1360, 112, 1167, 279, 929, 426, 576, -680, 848, -3, -1023, -819, -1033, -983, -972, -919, -672, -517, -429, -800, -1021, -965, -1247, -1695, -2365, -2436, -2689, -1873, -316, -217, -317, -306, --218, 536, 528, 754, 642, 919, 752, 420, 579, 390, 1253, 458, 1124, 290, -831, -808, -916, -846, -843, -734, -413, -178, -162, -615, -984, --987, -1311, -1751, -2366, -2303, -2623, -3011, -3000, -1701, -666, 177, 303, 202, 331, 552, 726, 816, 869, 779, 813, 631, 1101, 599, 1151, 216, --980, -701, -1536, -1930, -1874, -866, -933, -1095, -1660, -2165, -1336, -190, 232, -279, -1663, -3239, 5900, -1914, -4573, -2112, -1524, -1107, -456, 159, 427, -793, 1101, 881, 807, 475, 788, 821, 1012, 838, 1580, 518, -265, -14, -728, -554, -893, -1501, -2078, -3102, -4669, -4568, -4450, -3447, -1630, 1388, -6388, 6269, 8996, 5048, -557, 770, -825, 341, -627, 64, 102, 233, 788, 1009, 1067, 832, 977, 606, 1139, 353, 978, 427, -827, -226, -583, --2654, -4052, -4747, -3728, -2518, -1556, -923, -1355, -903, -2735, -2901, -2196, 4141, -1560, 7698, 5904, 1809, 514, 758, 316, 581, 931, 1204, 840, 1138, -770, 290, 120, 338, 481, 151, 1438, -371, -1497, -851, -541, -273, 549, 1544, 3116, 3519, 2472, 2804, 2631, 3416, -165, -3735, -9813, -3486, -2774, -3163, 7195, 4327, 2520, 2066, 1304, 1200, 702, 478, 810, 744, 681, 573, 668, 537, -92, -109, 1166, -615, -1480, -409, 350, 1899, 2927, 3403, -4134, 4056, 3194, 1909, 350, -412, -1855, -2066, -3533, -1914, 137, 1579, 3887, 2088, 1482, 1487, 935, 703, 272, 286, 373, 346, 440, 715, 647, -733, 353, 760, 592, 0, -209, -177, 3, 14, 306, 920, 1804, 2330, 2378, 2066, 1112, -799, -813, -258, 189, 787, 660, 1537, 1857, 1423, -1885, 1290, 1011, 553, 940, 673, 1145, 801, 854, 1041, 690, 1004, 1296, 1111, 625, 1451, 2161, 2132, 2359, 2520, 2762, 2927, 2742, 2572, 2477, -1962, 1674, 1411, 1175, 808, 449, 856, 761, 943, 2591, 1079, 1656, 1527, 1090, 1142, 771, 1123, 1556, 1350, 1086, 1366, 1559, 1661, 1434, 1354, -1427, 1935, 1720, 1634, 1599, 1460, 1290, 1191, 1131, 1022, 895, 781, 657, 514, 580, 738, 780, 873, 766, 377, 2160, 2840, 2764, 1570, 2668, -2826, 2931, 2891, 2692, 2845, 2954, 2881, 2725, 1883, 2527, 2827, 2334, 1163, 1200, 1280, 1264, 1315, 1377, 1434, 1280, 1159, 1042, 943, 835, 686, -724, 711, 713, 713, 848, -457, -190, 190, -1525, -1930, -1093, -1173, -1778, -1074, -1095, -1029, -814, -921, -932, -847, -1704, -1326, -784, -1700, -1488, --116, -361, -382, -424, -443, -485, -551, -624, -726, -859, -947, -956, -945, -640, -418, -115, -125, 563, -216, -2185, -419, -1189, -874, -601, -466, --234, -493, -804, -615, -419, -628, -637, -605, -849, -539, -1083, -462, -168, -399, -464, -489, -555, -723, -841, -1154, -1610, -2041, -2134, -1954, -1199, --536, 259, 290, 1976, 157, -1182, -285, -889, -559, -402, 49, -83, 326, -192, 294, -82, -201, -343, -316, -461, -368, -667, -310, 40, -326, --540, -647, -805, -1213, -1448, -2071, -2787, -3434, -3644, -3296, -1813, -445, 1234, 1257, 3415, 223, -1024, 316, -57, -403, 25, 706, 701, 694, 974, -818, 660, 481, 490, 412, 375, 480, 140, 167, 205, -108, -406, -425, -613, -916, -1070, -1910, -3234, -4882, -5516, -4997, -2750, -733, 1956, 2112, -5036, 2265, -864, -615, 21, 368, 911, 480, 564, 557, 561, 685, 708, 515, 429, 243, 67, -186, -579, -336, -145, -798, -1625, -1957, -2592, --3530, -4875, -5644, -6342, -5606, -4687, -4109, -1613, 699, 3758, 3950, 598, 1983, 583, -365, -268, -855, -612, -570, -51, 266, 803, 827, 788, 538, -599, 430, 283, 26, -111, -827, -1082, -1440, -2117, -3596, -4973, -6239, -6116, -6084, -6756, -4069, -2427, -979, -3260, -4070, -3737, -876, -11223, 114, 4143, -592, 2100, 723, 1086, 122, 769, 629, 217, 1064, 1101, 236, 402, -277, -480, -1131, -1350, -1804, -2666, -2533, -2071, -1149, -700, -973, -67, 860, -1545, 4140, 5590, 5735, 1731, -3163, -11396, -11212, -10650, -8279, -429, -2617, 478, -926, 143, -193, 763, 718, 240, 703, 552, -544, -606, -724, -1241, --1300, -1458, -1707, -531, -158, -266, 311, 747, 932, 1349, 2245, 3666, 2667, 1920, 984, -704, -843, -1363, -5524, -1877, -5261, -3451, -2182, -1823, -347, --173, -146, 642, 856, 846, 692, 619, 390, -48, -356, -460, -903, -1659, -2079, -1399, -855, 954, 1060, 1333, 1441, 1206, 1147, 1677, 2575, 2523, -1172, 403, -1012, -2350, -1847, -1690, -2995, -381, -94, 598, 504, 164, 100, 90, 341, 643, 796, 791, 672, 856, 507, -58, -173, -305, -4, -458, 762, 1626, 1321, 1005, 498, -16, -124, -109, -398, -623, -73, -166, -489, -1285, -1483, -572, -480, -616, -990, -752, -445, 54, 303, 469, -307, 356, 335, 978, 889, 1385, 1551, 1862, 2014, 1930, 2146, 1950, 1773, 1526, 1358, 1298, 1327, 755, 202, -371, -274, -231, -179, -437, -498, --379, -497, -425, -674, 761, -52, 178, 154, -154, -126, -301, -406, -337, -488, -338, -420, 135, 265, 317, 672, 1602, 793, 759, 852, 905, -912, 834, 789, 463, 312, 109, -42, -228, -377, -313, -341, -417, -469, -142, -367, -670, -269, 1225, -788, -273, 939, 996, 1043, 1113, 1156, -1172, 1189, -164, -461, 1631, 219, 8, 4, 138, 56, 31, 23, 37, 85, 67, 47, 29, -39, -94, -177, -192, -208, -193, -222, -206, -609, 915, 913, 1353, 724, -968, 1332, 704, -576, -593, -623, -744, -760, -799, -917, 612, 1068, -1101, 473, 930, 416, 422, 467, 436, 443, -443, 470, 434, 408, 372, 401, 431, 451, 531, 663, 892, 984, 1574, 1855, 765, 1281, 1018, 780, 855, 623, 765, 941, 882, 970, 717, -692, 367, 322, 643, 340, 105, 472, 196, 349, 243, 259, 248, 300, 228, 194, 135, 154, 200, 363, 520, 903, 1485, 1746, 2490, 2356, -2251, 1852, 1309, 1004, 846, 722, 706, 576, 740, 613, 444, 401, 346, 296, 73, 52, 375, 41, -186, 9, -107, -105, -173, -121, -363, --530, -650, -476, -217, 34, 405, 1109, 2383, 2720, 3148, 3288, 3057, 2186, 1991, 1511, 1130, 618, 606, 598, 688, 649, 566, 111, 336, 124, -254, -102, 361, -325, -635, -241, -436, -475, -543, -469, -771, -904, -1022, -1016, -897, -323, 249, 1661, 3544, 3839, -1576, 533, 2487, 963, 759, -738, 730, 1092, 1092, 906, 675, 672, 638, 583, 376, 66, 225, -420, -20, -437, -950, -729, -1227, -818, -1299, -2437, -2627, -2740, -2480, -313, -994, 2478, 969, -101, -1069, -66, -7421, -1800, 1290, 171, 318, 550, 206, -143, 53, 390, 607, 946, 954, 581, 459, 254, 187, -305, -580, --891, -1367, -1122, -652, -143, 404, 1042, 1449, 2661, 4853, 5116, 5660, 5866, 3768, 1087, -3587, -6493, -290, -6607, -4285, -2259, -1259, -726, 56, 45, -874, 904, 44, 956, 691, -366, -368, -693, -1416, -1141, -1462, -527, 1717, 2646, 4539, 7263, 9157, 10312, 9962, 8902, 7585, 5406, 5036, 4337, 6228, -8123, 11428, 5044, 11297, -305, -5407, -281, -1193, -11, -228, -217, 232, 417, -274, 702, 787, 176, 200, -124, -350, 95, -1011, 784, 2495, 2814, -3974, 4565, 5602, 6935, 6550, 6592, 7082, 6332, 4955, 2729, 4849, 6710, 11947, 9862, 6651, 4332, -817, -829, 228, -347, 337, 531, 815, 942, 737, -641, 565, 553, 252, 91, 605, 312, -786, 1332, 2288, 2320, 2858, 2642, 2404, 1879, 1929, 1545, 460, -127, -32, 383, 1334, 2924, 6496, 6202, -2722, 2894, -852, 136, 31, -162, 100, 171, 549, 589, 661, 910, 952, 602, 853, 1068, 1246, 996, 973, 1150, 929, 956, 908, 1078, 1002, -390, -278, -1049, -1457, -1389, -633, 572, 860, 903, 1124, 1992, 262, -92, 341, 738, 486, 469, 262, 286, 171, 297, 300, 304, 319, 253, -649, 522, 555, 729, 1369, 545, -136, 93, -178, -243, -430, -533, -224, 53, 280, 333, 274, 131, 342, 556, 518, 299, 431, 555, -567, -43, -55, -32, 235, 206, 403, 572, 563, 736, 735, 735, 541, 332, 651, 431, 630, -17, -90, 11, -36, 30, 92, 110, 159, 207, -315, 405, 504, 577, 495, 397, 427, 453, 360, 505, 730, 327, -577, 813, 319, -433, -467, -504, -533, -559, -587, -583, 491, 791, -342, -344, 548, 94, 238, 180, 174, 142, 98, 52, 114, 158, 190, 240, 306, 414, 417, 439, 416, 427, 527, -1565, -1615, -2151, -975, 317, -1947, -1443, 17, 1476, 1561, 1549, 1444, 1611, 1621, 1611, -55, -1241, 1712, -4, -984, -1709, -1414, -1531, -1482, -1505, -1508, -1499, -1491, -1474, -1448, --1467, -1501, -1528, -1717, -1818, -1849, -1875, -2472, -2289, 1580, -1213, -130, -243, -760, -603, -991, -925, -579, -925, -845, -832, -397, -603, -971, -944, -119, -1649, -1624, -1691, -1576, -1568, -1530, -1524, -1580, -1599, -1570, -1597, -1735, -1876, -2439, -2673, -2670, -2646, -4069, -2440, -246, -835, 451, 12, -9, --198, 233, -137, 135, -437, 204, -357, -144, -559, -598, -653, -934, -1373, -1801, -1819, -1709, -1808, -1879, -1912, -2037, -2019, -1953, -1925, -1872, -1826, --3007, -3690, -3993, -3918, -5545, -2248, 634, -281, 337, 635, 336, 453, 457, 525, 449, 699, 357, 55, 3, -275, -379, -699, -841, -1296, -1616, --1774, -1514, -1488, -1465, -1662, -2119, -2359, -2427, -2259, -2167, -2278, -4223, -4944, -5224, -4831, -7561, -6124, -3202, -2192, -1604, -1105, -1349, -531, 34, 338, -555, 585, 597, 439, 198, -99, -216, -612, -1115, -1975, -2234, -2409, -2569, -3443, -3851, -3680, -3231, -2730, -1765, -1753, -1671, -961, -2188, -3720, -6191, --7342, 1010, -3389, -3394, -1634, -1506, -604, -81, 130, 148, 392, 364, 763, 706, 224, 65, -273, -835, -985, -1269, -699, -461, -231, 727, 2887, -5031, 6813, 7553, 7492, 7222, 3728, 563, -2312, -1464, 432, 4014, 2426, 6949, 1739, -2447, -544, -1437, -607, -879, -471, 261, 484, -229, 556, 216, --690, -767, -808, -879, -312, 3, 635, 887, 1442, 2149, 1647, 978, 98, -92, 356, 1340, 982, -1040, -3154, -3927, -3686, -556, 3299, -3464, 4734, -3681, 1182, 391, 154, 232, 404, 421, 454, -320, 529, 743, 555, 610, 416, 652, 163, 872, 618, -839, -1056, -1289, -2342, -3143, -3673, -4279, --5735, -8259, -7198, -6303, -4482, -6159, -7601, -10438, -6466, -7169, -2138, 3166, 1563, 556, 854, 145, -371, 158, 176, 292, 189, -9, -116, 237, 604, -633, 710, 1577, 593, -578, -780, -2048, -2834, -3964, -5057, -6059, -6514, -6766, -6352, -6107, -5438, -4868, -4410, -5097, -5805, -2541, -1452, 1675, 226, 162, --24, -95, 319, 201, 227, -112, 215, 172, -34, -366, -558, -848, -114, 475, -587, -1379, -1574, -2547, -3227, -3491, -3246, -2179, -1201, -588, -191, --563, -1974, -2082, -1997, -1630, -1923, -1088, -178, -147, -270, 334, 137, 134, -80, 231, 40, 462, -237, 209, -308, -44, -518, -470, -803, -846, --1599, -1626, -998, -577, -555, -627, -754, -1003, -1225, -1364, -1685, -1877, -2046, -1999, -2092, -2283, -1516, -1085, -1146, 533, -784, -369, -293, -668, -567, --841, -834, -377, -724, -713, -571, -177, -342, -695, -570, 255, -793, -670, -829, -930, -936, -880, -779, -892, -1005, -1130, -1259, -1366, -1495, -1411, --1270, -1192, -1107, -1177, -1446, -611, 200, 1299, -1039, 95, 1153, 1264, 1327, 1254, 1471, 1578, 1630, 134, -905, 1494, 131, -687, -1395, -1145, -1180, --1145, -1146, -1176, -1195, -1265, -1299, -1336, -1357, -1392, -1463, -1381, -1344, -1283, -1286, -1465, 901, 578, 1206, -752, -1826, -2474, 44, -1469, -2439, -2482, --2444, -2220, -2435, -2471, -2409, -1462, -98, -2607, -1551, -518, 1412, 823, 991, 1033, 1069, 1099, 1138, 1106, 1096, 1057, 1045, 1011, 985, 957, 866, -591, 711, 335, 118, -2523, 189, -735, -638, 17, -45, 655, 431, -229, 302, 358, 243, -387, -179, -111, 119, -1647, 1003, 1287, 1270, 1482, -1552, 1641, 1685, 1571, 1440, 1289, 1312, 1306, 1208, 1142, 782, -14, 121, 182, -711, -1823, -918, -1112, -561, -464, -302, -312, 414, -387, 620, --260, 384, -434, -75, -72, -100, -437, 689, 1658, 1498, 1982, 2143, 2372, 2552, 2392, 2302, 2022, 1992, 1852, 1770, 1594, 1021, -599, -319, -433, --2267, -3032, -1107, -986, -608, -229, 83, 622, 598, 682, 514, 459, 458, 140, 213, -461, 254, -630, 906, 2109, 2070, 2607, 2750, 3007, 3136, -2693, 2108, 1567, 1823, 2116, 1984, 1690, 204, -2408, -2007, 4994, 1130, -2569, -1223, -1568, -1284, -458, -796, -244, 270, 368, 696, 749, 468, 349, -372, -137, 460, -472, 672, 1985, 1690, 3031, 4067, 5125, 5822, 6646, 7289, 7639, 5840, 4362, 2535, 3894, 4697, 5225, 3889, 6098, 2008, -1147, -67, -442, -217, 118, 80, 250, 255, 478, 714, 605, 429, 513, 328, -18, 213, -184, 1406, 2909, 3139, 3796, 4077, 4373, 4752, 4322, 3318, 1244, -1187, 800, 699, 1922, 2020, 2587, 4466, -2587, 3815, 3280, 1726, 793, 763, 48, 57, 554, 739, -219, 575, 395, -112, 102, 468, 413, 642, -790, 493, -552, -1330, -2315, -2638, -2882, -2932, -4082, -4787, -5443, -3719, -1734, 1383, 1074, -443, -3394, -3925, -2480, -3329, 412, -181, 106, 266, 459, -427, 524, 490, -255, 466, 445, 289, 250, 121, 233, -224, -232, -855, -1717, -2121, -2843, -3303, -4252, -5196, -5227, -4564, -3310, -2876, -1978, -1317, -340, 2083, 3013, 683, 2347, -1833, -4128, -1859, -899, -764, -214, 147, 48, 345, 118, 117, -52, -104, -210, -223, -553, -33, 133, -957, -1509, --2339, -2973, -3108, -2805, -1705, -1409, -239, 2092, 2370, 2652, 2521, 2995, 2538, 1495, 1496, 435, -926, -1871, -868, -770, -386, -75, -23, 315, 263, -186, -55, -74, -82, -370, -748, -802, -1377, -1665, -1453, -968, -819, -253, 407, 546, 433, -97, -433, -550, -434, -224, 298, 348, 598, 782, -124, 607, 159, -378, -262, -658, -280, -68, 219, -66, 180, -119, 111, -386, -391, -640, -650, -978, -944, -1181, -710, -377, -667, -668, -785, --719, -621, -553, -443, -401, -105, 117, 460, 359, 351, 654, 445, 100, 0, -1282, 14, -480, -475, -123, -221, 76, -182, -589, -379, -234, --395, -658, -621, -478, -425, -1032, -592, -589, -540, -454, -393, -369, -390, -230, -87, 53, 223, 404, 620, 560, 479, 335, 172, 180, 416, --875, -1566, -1878, -379, -1390, -1862, -1944, -1919, -1778, -1910, -1979, -1953, -1527, -633, -1896, -1563, -911, 102, -63, -18, -14, -3, 27, 42, 149, -230, 316, 373, 412, 487, 375, 320, 282, 262, 198, 817, 800, 648, 1438, 1500, 630, 1266, 1501, 930, 1000, 1001, 808, 902, 883, 818, -1531, 1285, 711, 1534, 1425, 498, 717, 726, 718, 771, 805, 820, 854, 870, 883, 938, 987, 1110, 983, 942, 873, 887, 933, 1074, 780, -676, 881, 830, 767, 750, 816, 978, 1085, 985, 822, 984, 797, 733, 1036, 753, 1285, 768, 499, 651, 538, 604, 600, 637, 765, 932, -1066, 1280, 1428, 1671, 1426, 1314, 1143, 1161, 1542, 1077, 850, 715, 473, 425, 476, 426, 769, 525, 689, 347, 608, 638, 525, 386, 599, -524, 1085, 719, 310, 711, 590, 933, 1110, 1308, 1594, 1769, 1951, 2238, 2339, 2657, 2175, 2112, 1833, 1902, 1909, 1175, 365, 261, 205, -53, -38, 23, 446, 577, 185, 411, 323, 226, 22, -122, 379, 70, 843, 369, -244, 20, -210, 52, 116, 272, 774, 1462, 2065, 2651, 2796, -3190, 2632, 2296, 1982, 2017, 3579, 4039, 3132, 1808, 1757, 1364, 1209, 670, 439, 343, 257, 518, 578, 592, 383, 188, 433, 156, 1014, 1109, -1105, 2404, 3037, 3807, 4750, 6171, 6232, 5749, 4175, 4630, 4777, 4667, 4783, 5013, 5548, 5266, -2706, 1966, 3062, 1284, 1155, 739, 313, 152, 280, -373, 397, 631, 587, 469, 406, 452, 1052, 964, 1762, 318, -1550, -1930, -3251, -3072, -3525, -3854, -4508, -4203, -3410, -1793, 380, 2672, 1418, -381, --3315, -3276, -2104, -2090, 1200, 634, 1355, 753, 1027, 365, 932, 813, -105, 669, 575, 473, 525, 371, 802, 60, 18, -854, -1574, -1480, -2560, --3281, -3522, -2576, -2714, -2728, -2560, -3731, -3770, -4120, -3292, -806, 2047, 659, 4011, 461, -1786, -298, 87, 201, 174, 119, 397, 437, -35, 247, -101, 186, -292, -348, -454, -378, -283, -945, -1337, -1316, -1067, -302, 523, 1378, 2080, 3120, 4509, 3832, 2835, 1407, 1554, 1116, 2411, 3228, 1793, -2540, 1666, 461, 748, 308, 557, 1040, 784, 363, 93, -35, -55, 185, -45, -378, -626, -975, -959, -792, -319, 80, 515, 1067, 1388, 1392, -2529, 2310, 813, 499, 149, -50, -843, -434, 895, 1747, 1181, 1733, 416, 123, 96, 15, 42, 210, 49, 38, 39, 110, 31, -56, -115, -81, 437, -88, -599, -179, -456, -634, -378, 201, 677, 1024, 815, 485, 255, -328, -518, -390, -295, -190, -143, 1024, -116, -17, 613, 519, -567, 421, 263, 176, 258, 65, 282, 18, -44, 54, -199, -156, -199, -213, -144, -232, -404, -519, -772, -542, -384, -191, -180, -107, 10, -74, 215, 260, 399, 506, 397, 254, -123, 55, 345, -74, 243, 178, 105, 190, 19, 205, 349, 304, 147, 230, 44, -39, -97, -386, --542, -450, -442, -389, -364, -376, -417, -425, -360, -298, -258, -235, -277, -316, -322, -298, -209, -119, -119, -216, 719, 895, 263, 567, 869, -489, 472, 416, 260, 273, 255, 183, 801, 540, 5, 666, 508, -98, -60, -58, -56, -52, -37, -33, -76, -125, -166, -193, -192, -190, --156, -142, -157, -130, -60, 407, 442, 477, -38, 80, 900, -62, 31, 700, 753, 766, 815, 800, 824, 921, 58, -79, 977, 103, -74, -306, 314, 269, 238, 230, 210, 163, 194, 222, 290, 335, 412, 553, 514, 528, 637, 459, 825, 474, 376, 290, 206, 356, 326, 268, -343, 241, 67, 141, 273, 253, 279, 264, 84, 246, 334, -12, 174, 32, -15, 10, 1, -75, 19, 151, 387, 509, 676, 938, 822, -888, 1260, 898, 1091, 761, 337, 387, 258, 173, 209, 129, 347, 495, 40, 355, 253, 369, 97, 60, 104, 140, -4, -177, -4, -199, --418, -436, -518, -700, -522, -311, 183, 441, 819, 1429, 1168, 1243, 1961, 1158, 1858, 1196, 749, 525, 523, 393, 386, 236, 479, 520, 344, -410, 306, 431, 61, -12, 58, 176, 1, -372, -344, -616, -856, -690, -657, -773, -389, 142, 1036, 1300, 1741, 2419, 1922, 2131, 3437, 2382, --736, 71, 1262, 964, 745, 411, 163, 487, 355, 204, 236, 396, 422, 383, 231, 154, 132, 232, 183, -157, -559, -943, -1398, -2270, -2799, --3067, -2892, -2779, -2822, -2724, -2642, -2610, -2172, -2033, -1659, -1271, -3452, -1792, -159, -95, -97, 276, 441, 552, 561, 540, 359, 570, 420, 345, -92, 27, 18, 72, -252, -1188, -1900, -2826, -3532, -4496, -4921, -5053, -4375, -3593, -2213, -2257, -2517, -3965, -3919, -3294, -2361, -2712, 278, -1178, -1963, --847, -419, -239, 154, -8, 535, 701, -81, 693, 722, 621, 285, -69, -128, -409, -1008, -1149, -1359, -1599, -1103, -970, -648, -601, 909, 1963, -2841, 2791, 1344, -1342, -1250, -1669, -1318, -721, -5296, 58, 950, 123, 295, -121, 275, 437, 426, 263, -182, 57, 91, -74, -302, -630, -989, --777, -1021, -714, -162, -66, -119, -408, -738, -1534, -1220, -2045, -3750, -3815, -3471, -2764, -3271, -3685, -4143, -5942, -3906, -3022, 121, 256, -218, 211, --7, -162, 67, 28, -235, -182, -70, 103, 69, -35, -153, -463, -958, -608, -709, -822, -554, -796, -1013, -1435, -2288, -2954, -3345, -2982, -2764, --2627, -2185, -2186, -2132, -3014, -1196, -1717, 85, -415, -201, -211, -62, 115, 19, 49, 75, 168, 69, 2, -125, -217, -385, -24, 96, -39, -152, -196, -1023, -2115, -2462, -1991, -1228, -536, -352, -218, -191, -203, -453, -697, -588, -833, -62, 81, -448, -315, -200, -134, -16, 8, -56, -12, -264, 69, 180, 374, 228, 256, 250, 94, -309, -14, 41, -263, -241, -189, -252, -492, -626, -799, -902, -944, -1041, -1137, -957, -818, --711, -470, -724, -848, -353, -567, -607, -449, -510, -455, -457, -602, -641, -651, -588, -619, -422, -244, -477, -244, -253, 106, 97, -58, -159, --353, -465, -535, -574, -637, -735, -865, -949, -1072, -979, -937, -873, -848, -608, -609, -995, -721, 308, -1021, -726, 73, 87, 117, 215, 192, -217, 262, -727, -926, 249, -570, -726, -280, -440, -472, -506, -529, -562, -614, -658, -697, -721, -741, -771, -832, -775, -738, -684, -671, -735, -461, 660, 575, 1210, 963, 216, 1046, 935, 393, 436, 408, 260, 315, 327, 295, 913, 974, 185, 842, 993, 261, 355, 360, 317, 309, -305, 335, 301, 290, 277, 251, 246, 236, 349, 473, 693, 697, 1066, 1173, 882, 866, 789, 719, 674, 487, 530, 739, 787, 782, 619, -705, 549, 460, 633, 474, 516, 441, 338, 456, 337, 320, 321, 429, 368, 292, 213, 86, 117, 226, 498, 755, 1170, 1190, 1553, 1555, -1470, 1200, 850, 791, 619, 330, 603, 415, 618, 427, 553, 597, 499, 392, 269, 360, 423, 160, 137, 143, -44, -133, -177, -58, -270, --338, -481, -660, -611, -429, 255, 808, 1738, 1673, 1791, 1743, 1375, 998, 778, 888, 563, -71, 340, 424, 121, 314, 327, 221, 33, -105, -147, -6, 202, 28, 290, 545, 255, 105, 91, 411, 232, -155, -652, -1084, -841, -397, 660, 1479, 2442, 2174, -669, 57, 1536, 1541, 373, -246, 171, 304, 533, 632, 370, 367, 326, 549, 225, 30, 175, -11, 146, -237, -1376, -1995, -2744, -2075, -2296, -3345, -3309, -2586, -791, -525, --333, -73, 172, 93, -160, -740, 1398, -980, -1523, -436, -99, 309, 516, 887, 813, 774, 472, 613, 428, 333, 59, -67, -169, -441, -722, --484, -152, 191, 712, -420, -547, 61, 1229, 1793, 1744, 3070, 3446, 3045, 4630, 4394, 3285, 2195, 883, 1051, -222, -88, -462, -178, -171, 150, -331, 523, 44, 529, 590, 704, 251, 110, -163, -69, -150, 116, 799, 856, 1571, 2407, 3019, 3002, 2902, 2127, 559, 727, 1510, 3062, 5521, -5348, 3053, 1350, 3021, -332, -477, 473, -212, 360, 276, 658, 367, 203, -128, 192, 290, 420, 356, 197, 156, 191, -451, 139, 713, 780, -1034, 972, 987, 1217, 732, 759, 1359, 1220, 1534, 1198, 3906, 5466, 6178, 4474, 4043, 2118, -1243, -149, 154, -31, 220, 388, 197, 264, -56, -241, 372, 442, 225, 76, 72, 563, 259, 896, 907, 417, 53, -57, 277, 996, 901, 1771, 3551, 2736, 2653, 2639, 3991, 4480, 4770, 3716, -1548, 1012, -702, 135, -40, 294, 388, 231, 419, 312, 353, 152, 176, 269, 379, 523, 616, 397, 258, 498, 890, 1010, 1061, 998, 695, -106, -372, -885, -1105, -862, -312, 362, 1132, 1740, 2101, 1602, 1038, 868, 817, 734, 279, 410, 335, 475, 231, 441, 253, 551, 231, 340, -290, 316, 151, 402, 610, 884, 780, 552, 410, 185, 20, -149, 176, 385, 472, 628, 628, 591, 725, 904, 1246, 1070, 905, 1073, -644, -739, 314, 290, 681, 567, 855, 826, 540, 728, 665, 575, 289, 288, 629, 500, -1, 385, 189, 227, 180, 171, 149, 52, 136, 186, -296, 411, 585, 762, 816, 830, 845, 877, 831, 1153, 487, -229, -1397, 910, -74, -1165, -1247, -1265, -1225, -1316, -1357, -1378, -109, 658, -1316, --214, 366, 667, 552, 560, 524, 498, 474, 440, 555, 643, 722, 785, 833, 901, 873, 876, 868, 902, 977, -1615, -1487, -1963, -949, 129, -1597, -1438, -125, 1213, 1309, 1320, 1242, 1410, 1443, 1471, -142, -1241, 1572, -98, -987, -1713, -1399, -1526, -1501, -1540, -1546, -1552, -1521, -1520, -1529, --1568, -1628, -1740, -1801, -1812, -1730, -1705, -2322, -2066, 1066, -1299, -490, -505, -940, -780, -1097, -1050, -697, -1016, -903, -838, -414, -610, -949, -933, -180, -1565, -1567, -1652, -1646, -1754, -1806, -1843, -1778, -1773, -1868, -1983, -2231, -2566, -2754, -2775, -2608, -2541, -2909, -1697, -216, -784, 13, -175, -184, --384, -13, -297, -69, -535, 122, -299, -56, -469, -541, -627, -745, -1133, -1623, -1631, -1682, -1892, -1986, -2077, -1954, -1972, -2111, -2275, -2644, -3294, --3556, -3555, -3211, -2869, -4853, -1965, 186, -636, -527, -198, -298, -211, 105, 269, -10, 345, 172, 97, -113, -368, -254, -647, -454, -1027, -1573, --1708, -1707, -1994, -2287, -2580, -2462, -2394, -2708, -3034, -3960, -5206, -5685, -5573, -5190, -4702, -617, -1075, -1223, -490, 260, 413, 163, 14, 125, 251, -381, 172, 130, 421, -37, -336, -360, -909, -1076, -1722, -1610, -1545, -2069, -2825, -2958, -2468, -2707, -2967, -3091, -2248, -1114, 460, 726, 867, 486, -19, 1033, 951, -129, -196, -526, -361, 17, 311, 640, 665, 226, 333, 278, 390, -144, -452, -733, -1086, -928, -1242, -1729, -1445, -1001, -500, --227, -156, -57, 89, 150, -604, -537, 578, 69, 266, 1308, 563, 186, 26, 828, 533, 514, 202, 146, 305, 237, 259, -46, 106, 168, -629, -38, -258, -97, -24, 135, 133, 423, 498, -151, -771, -1328, -1502, -2048, -1993, -1495, -2322, -2922, -4015, -4530, -3915, -3435, -535, -237, 1486, -395, -172, 299, -102, 103, 412, 166, 68, -131, -52, 131, 763, 333, 364, 749, 367, 473, 196, -513, -855, -842, -773, -520, 53, -673, --703, -98, -337, -173, 752, -943, -2797, -5562, -2179, -3841, -45, 2107, 705, 384, 538, 343, 175, 217, 46, 69, 393, 431, 365, 283, 256, -329, 78, 550, 410, 391, 760, 490, 19, -624, -1674, -1219, -1615, -2782, -2547, -2349, -1692, -2279, -2537, -3493, -3749, -1712, -970, 613, -42, 271, -299, 223, 136, 52, 133, 104, -15, -41, 61, 147, 246, 274, 478, 599, 329, -168, -187, -166, -372, -517, -1027, -894, -818, -601, -546, --643, -951, -695, -678, -931, -1086, -923, -559, 55, -327, 32, -94, -60, -97, 287, 137, 592, 148, 375, 115, 197, 37, 97, 117, 323, --29, -82, 249, 367, 199, 77, 27, -178, -381, -570, -657, -606, -603, -641, -671, -766, -654, 15, 61, 1368, 226, 677, 615, 257, 354, -11, 107, 354, 127, 107, 179, 299, 269, 78, 57, 409, 84, 196, 148, 157, 222, 277, 340, 221, 147, 59, -26, -191, -351, -292, --212, -141, -34, -135, -351, 453, 1039, 1431, 124, 934, 1450, 1491, 1466, 1343, 1430, 1433, 1407, 890, 229, 1286, 831, 318, -159, -17, -16, -14, 29, 36, 71, -7, -70, -140, -211, -255, -331, -269, -248, -226, -218, -225, 392, 124, 645, -897, -1777, -2338, -247, -1476, -2263, -2323, --2304, -2104, -2286, -2298, -2235, -1428, -300, -2399, -1561, -711, 824, 337, 454, 495, 463, 447, 421, 430, 449, 465, 523, 542, 504, 573, 499, -250, 232, -124, -316, -2298, -219, -954, -837, -263, -265, 264, 117, -380, 24, 80, 5, -460, -310, -339, -195, -1620, 430, 563, 513, 710, -659, 635, 516, 467, 482, 588, 823, 939, 761, 989, 780, 101, -88, -273, -766, -1601, -999, -1262, -779, -551, -281, -405, 229, -401, 425, --320, 318, -286, -27, -237, -346, -633, 184, 786, 608, 1016, 862, 806, 667, 647, 734, 925, 1257, 1440, 1050, 1422, 986, -272, -513, -623, --2212, -2652, -1274, -1360, -994, -567, -170, 283, 398, 448, 229, 309, 473, 164, 174, -524, -90, -809, 152, 824, 755, 1328, 1204, 1141, 811, -571, 615, 1121, 1983, 2410, 1816, 2251, 1454, -505, -1055, 5616, 3322, 384, 254, 127, 40, 581, 488, 88, 42, 323, 209, 190, 291, 108, -186, -280, 115, -634, 33, 1135, 680, 1209, 1014, 961, 525, 966, 779, 74, -869, -1435, -2333, -1140, -125, 603, 3517, 932, 1563, 1131, 1029, -1406, 584, 487, 227, 642, 596, 256, 283, 292, 664, 288, 101, -341, -202, -865, 187, 1629, 1571, 1955, 2017, 1923, 1430, 867, 416, 474, --1289, -1710, -1499, -1524, -1033, -757, 249, 131, 1033, 259, 654, 404, 477, 279, 874, 487, 480, 54, -48, 80, 912, 248, 360, 237, 514, -444, 416, 320, -214, -563, 2, 481, 711, 845, 917, 1389, 1501, 2178, 3600, 2482, 1195, 331, -468, -819, -563, 592, 600, 212, 356, 373, -756, 210, 22, 27, 55, 189, 828, 424, 238, 333, 279, 105, 295, 546, 554, 421, 255, -348, -1442, -1384, -1724, -2156, -1546, -737, 265, -361, 1065, 1692, -163, 1232, -801, -1639, -441, -155, -74, 80, 95, 1, 284, 322, 403, 359, 314, 220, 296, 305, 328, 126, 84, -112, --461, -433, -540, -515, -411, -874, -1133, -963, -542, 110, 863, 1361, 1072, 261, 642, -149, -783, -1059, -221, -140, 127, 338, 200, 406, 384, -356, 262, 259, 218, 273, 149, 5, 11, 33, -163, 76, 175, 346, 433, 441, 388, 153, 42, -174, 363, 827, 1387, 550, 38, 66, --472, 423, -151, -652, -280, -474, -312, -173, -33, -95, 181, 43, 349, 109, 309, 83, 186, 124, 99, -31, 214, 420, 298, 337, 212, -163, 97, 313, 564, 807, 761, 633, 671, 544, 430, 395, 241, 224, 114, -295, 171, -56, 15, 201, 146, 368, 258, 63, 286, 406, -386, 303, 376, 378, 424, 170, 452, 413, 430, 464, 466, 476, 451, 498, 497, 530, 570, 679, 749, 668, 567, 443, 301, 274, 324, --250, -519, -320, -92, -493, -491, -508, -490, -375, -458, -473, -423, -394, -6, -347, -329, -38, 433, 336, 363, 358, 374, 394, 414, 422, -432, 437, 452, 442, 459, 395, 365, 349, 321, 270, -130, -62, -197, 749, 957, 374, 528, 929, 714, 772, 774, 590, 688, 682, 629, -1023, 585, 525, 985, 722, -324, -112, -129, -115, -123, -133, -156, -166, -188, -201, -254, -275, -291, -248, -191, -86, -56, 315, 373, 256, --17, 306, 343, 164, 173, 53, 250, 576, 329, 201, 391, 372, 264, 382, 120, 706, 40, -244, -123, -172, -240, -309, -338, -344, -348, --316, -432, -431, -353, -181, 46, 364, 478, 696, 504, 368, 388, 175, 107, 195, 156, 425, 91, 567, -23, 402, 403, 471, 248, 250, -152, 457, 155, -336, -78, -67, -60, -108, -174, -189, -286, -401, -750, -904, -923, -646, -271, 503, 693, 2090, 1152, -42, -180, 68, -138, --60, -213, 45, 296, 79, 199, 211, 288, 67, -78, 94, -287, 145, 0, -446, -273, -296, -517, -690, -727, -692, -720, -765, -1174, -1129, --830, -109, 674, 1905, 2193, -1109, 1913, 4062, 2588, 1641, 1109, 829, 1025, 731, 447, 314, 140, 90, 415, 203, 89, 104, -43, 480, 381, --60, 678, 1199, 1898, 2389, 2806, 2426, 2149, 1936, 1050, -54, -1261, -2095, -2261, -1983, -669, -484, 168, 1120, 631, 899, 1152, 689, 546, 496, -544, 172, 348, 407, 532, 230, 298, 569, 627, 1030, 420, -343, -655, -1785, -1272, -1084, -1164, -774, -587, -439, 1098, 2334, 3439, 3797, 2953, --49, 363, -395, 94, 1108, 563, 902, 179, 679, 1132, 569, 257, 119, -234, -35, 1187, 354, 116, 407, 29, 193, -50, -361, -38, -183, --896, -1474, -1813, -1569, -1455, -1438, -1150, -615, 627, 866, 1366, 1330, 858, 2234, 499, 28, 70, 217, 279, 272, 545, 154, 21, 385, 208, -295, 863, 353, 328, 137, 255, 595, 119, -341, -235, -18, 369, 789, 1208, 1155, 1090, 975, 1335, 1062, 34, 721, 839, 608, 2561, 1622, -1785, 1164, 621, 509, 415, 332, 576, 457, 257, 327, 159, 144, 211, 192, 208, 91, 237, 428, 177, 216, 240, 180, 718, 942, 1234, -954, 973, 932, 640, 369, -118, 124, 405, 362, 1516, 404, 1455, 827, 850, 661, 559, 375, 504, 390, 320, 124, 341, 328, 270, 223, -308, 396, 266, 80, 169, -220, -195, 78, 792, 1009, 998, 572, 349, 468, 81, -328, -999, -540, -285, -317, 58, -21, 42, 452, 385, -443, 356, 258, 163, 269, 137, 415, 126, 362, 297, 395, 317, 368, 298, 418, 55, -115, 65, -56, 64, 172, 364, 376, 357, 320, -191, 129, -45, 165, 277, 392, 295, 189, 375, 415, 337, 498, 489, 515, 533, 470, 531, 693, 554, 425, 476, 498, 303, 349, 156, -439, -240, -254, -193, -175, -134, -141, -137, -199, -232, -258, -278, -296, -315, -234, -144, -34, 89, 123, 122, 579, 647, 226, 536, 675, -402, 422, 448, 368, 468, 513, 490, 691, 457, 449, 618, 455, -143, 18, -13, -12, -17, -13, -2, -13, -16, -17, -15, -9, -15, -31, 54, 64, 105, 168, -287, -364, -291, -869, -748, 92, -770, -776, -195, -183, -144, -7, -70, -53, 59, -770, -778, 87, -747, -829, --115, -212, -228, -214, -242, -262, -325, -282, -270, -235, -258, -277, -326, -365, -404, -432, -426, -673, -523, -121, -289, -292, -267, -259, -283, --251, -447, -546, -473, -279, -291, -251, -222, -489, -264, -421, -334, -128, -267, -200, -282, -340, -484, -362, -295, -239, -335, -508, -744, -932, --1043, -995, -934, -1127, -530, -225, -186, 62, -88, -96, -116, -180, 24, -282, 30, -84, 123, -102, -104, -140, -146, -373, -181, 61, -109, --77, -240, -346, -676, -414, -304, -183, -267, -488, -887, -1204, -1431, -1395, -1267, -2111, -201, 765, 380, 556, 382, 309, 175, 136, 143, 217, -204, 255, 604, 236, 256, -46, 201, -217, -10, 114, -159, -24, -227, -434, -913, -467, -158, 8, -347, -1138, -2081, -2682, -2990, -2762, -2336, --2259, -1933, -1208, -345, -34, -88, -285, 61, 510, 519, 445, 172, 101, 272, 157, 176, -203, 243, -111, 55, 549, 209, 191, -921, -1076, --479, -125, 127, 312, 347, 657, 1636, 720, 251, 265, -1717, 479, -178, -176, 109, -316, 322, 571, 456, 490, 473, 50, 262, 321, 581, -228, 200, 73, 230, 23, -278, -513, -1032, -1156, -1509, -1892, -2548, -2735, -2700, -2391, -1231, -771, -426, -289, 87, 442, 480, -402, -820, -607, --446, -216, -365, 46, 845, 259, 85, 8, -163, 107, 1079, 232, -30, -167, -195, -426, -366, -465, -866, -1085, -1311, -1261, -1040, -461, 123, -455, 775, 151, -1557, -2974, -3627, -3696, -1478, -2599, -226, 15, -448, 96, -164, 127, 341, 72, 49, 344, 66, 214, 602, 45, -97, -147, --90, -132, 30, 327, 194, -101, 129, 209, 87, -290, -946, -1958, -2663, -2811, -1895, -2972, -3719, -4927, -3707, -3128, -2031, 43, -44, -187, 11, --39, -60, -7, -23, -40, 56, 103, 75, 115, 145, 192, -155, -338, -234, -223, -24, 266, 0, -422, -1014, -1244, -1697, -2241, -1656, -1497, --1449, -2287, -2825, -3491, -3045, -1194, -978, 152, -254, 86, -57, 35, 112, 183, 250, 146, 140, 119, 158, 53, -107, -224, -78, 43, 85, -56, -106, -392, -669, -880, -930, -356, 117, 396, 38, -257, -404, -115, -293, -1051, -1133, -544, -557, -578, -493, -261, -229, -109, -84, -49, --33, -108, 30, 142, 142, 184, 156, 141, -43, -311, -407, -287, -266, -143, 13, 127, 184, -258, -717, -1095, -915, -682, -530, -570, -571, --548, -525, -87, -150, 279, 36, 70, 106, -7, 96, -51, -120, -168, -237, -160, -215, -193, -162, -308, -173, -237, -71, 25, -83, -115, --174, -198, -147, -138, -61, -86, -147, -296, -384, -349, -312, -267, -218, -64, -56, -376, -241, 334, -392, -259, 270, 281, 273, 305, 281, -254, 261, -336, -369, 193, -333, -385, 61, -27, -38, -38, -52, -79, -127, -144, -171, -175, -188, -175, -193, -152, -130, -104, -103, -27, -654, 536, 556, 675, 277, -708, 889, 430, -494, -549, -576, -617, -642, -646, -666, 424, 884, -815, 335, 773, 621, 561, 612, 580, 590, -590, 604, 598, 617, 623, 701, 743, 755, 845, 837, 701, 655, 349, 362, -106, 541, 395, 289, 511, 480, 578, 667, 591, 709, 597, -672, 401, 405, 590, 487, 107, 723, 628, 757, 687, 741, 762, 804, 790, 787, 784, 987, 1174, 1232, 1463, 1300, 752, 580, 53, -179, -20, 98, 140, 295, 310, 391, 269, 285, 361, 427, 320, 563, 455, 485, 261, 398, 562, 518, 601, 650, 546, 585, 567, 621, 539, -635, 736, 1188, 1575, 1605, 2141, 1940, 752, 450, -1052, -1391, -644, -57, -92, 226, 202, 176, 218, 210, 100, 108, 315, 457, 333, 238, -216, 264, 443, 465, 644, 998, 801, 898, 973, 1103, 1053, 994, 1007, 1798, 2453, 2640, 3358, 2690, 288, -485, 2222, 1051, -491, -490, -391, --293, -42, 23, 293, 464, 466, 258, 223, 436, 309, 315, 316, 444, 713, 1016, 79, -454, -1007, -167, -359, -1608, -1417, -1252, -895, -522, --47, 532, 318, 692, 1470, 1678, 2077, 796, 641, 967, 966, 756, 678, 507, 529, 548, 239, 195, 255, 599, 351, 352, 275, 312, 203, -640, 1109, 1582, 2155, 1394, 1100, 1375, 1126, 1005, 904, 407, 281, 562, 799, 929, 1332, 1987, 1677, 960, -306, -86, -495, -3, -54, 857, -277, 85, 59, 3, 261, 949, 399, 379, 306, 157, 167, 31, 227, 57, -61, 1177, 2098, 2653, 2610, 2106, 1335, 1099, 1324, 2605, 2486, -2142, 1699, 1050, 1949, -29, -22, 707, -74, 467, 212, 532, 184, 165, 363, 47, 170, 660, 370, 264, 211, 265, 163, 509, 1267, 1503, -1241, 1429, 1334, 1094, 1234, 1178, 1124, 718, 513, 367, 1224, 2663, 5078, 2907, 3189, 1397, -824, -56, 265, 30, 237, 447, 203, 223, 141, -266, 333, 316, 247, 189, 135, 335, 166, 383, 408, 319, 159, 240, 465, 791, 863, 1307, 2222, 2037, 2112, 2112, 2018, 2025, 2629, 2766, -1391, 963, -304, 296, 186, 221, 232, 187, 257, 214, 215, 180, 183, 155, 342, 429, 391, 169, 104, 301, 505, 494, 470, 433, 453, -595, 549, 240, -320, -223, 208, 1084, 713, 648, 644, 985, 439, 264, 219, 491, 380, 400, 387, 415, 237, 276, 155, 281, 142, 270, -119, 118, 11, 70, 71, 191, 104, -60, -132, -76, -57, -91, 143, 445, 739, 962, 995, 1089, 788, 600, 395, 335, 503, 528, -193, -299, 141, 90, 231, 205, 347, 442, 389, 544, 497, 550, 370, 346, 501, 392, 55, 382, 272, 323, 286, 268, 254, 218, 322, 375, -454, 556, 724, 927, 857, 800, 722, 650, 587, 644, 606, 243, -425, 701, 253, -345, -351, -371, -373, -410, -421, -435, 342, 716, -472, -280, 582, 541, 472, 487, 472, 462, 449, 418, 505, 578, 648, 712, 751, 822, 749, 719, 682, 657, 751, -875, -758, -1026, -433, 292, -1286, -724, 204, 1205, 1243, 1244, 1180, 1301, 1328, 1347, 248, -598, 1411, 293, -405, -1030, -756, -854, -864, -861, -866, -868, -884, -905, -932, --977, -1006, -1005, -1084, -1059, -897, -879, -783, -983, 309, -830, -270, -126, -424, -269, -589, -563, -269, -522, -436, -383, -23, -159, -434, -430, -484, -911, -887, -941, -1030, -1021, -1027, -1012, -1027, -1091, -1205, -1343, -1449, -1377, -1535, -1333, -881, -829, -894, -932, -711, -670, -168, -137, 3, --18, 127, -123, 90, -266, 226, -133, 188, -95, -231, -221, -238, -640, -974, -978, -1175, -1170, -1201, -1229, -1298, -1470, -1664, -1958, -2124, -1970, --2357, -2063, -1260, -1092, -705, -1071, -1229, -1120, -540, -330, -94, 53, 75, 180, 63, 214, 198, 273, 220, -6, -71, -284, -28, -608, -981, --1083, -1411, -1436, -1540, -1506, -1546, -1705, -2090, -2573, -2873, -2518, -2827, -2015, -760, -715, -1104, -572, -33, -485, -63, -65, -46, 122, 137, 150, -245, 181, 202, 374, 96, -49, 79, -431, -224, -682, -1140, -817, -1248, -928, -814, -724, -1544, -2197, -2696, -2355, -2184, -1995, -3115, -3107, -2509, --1259, 1369, 1240, 986, 608, 561, 368, 311, 446, 263, 304, 146, 82, 160, 369, 36, -68, -140, -271, 188, -525, -1549, -1398, -1589, -905, --606, -423, -32, 304, 412, 102, -187, 213, -1080, -956, 277, 904, -170, 10, 1078, 413, 388, 391, 503, 750, 213, -46, 90, -20, 211, -710, 149, -111, 185, -53, -146, -319, -282, -180, -493, -988, -1716, -2518, -2726, -2532, -2027, -1476, -1726, -2322, -2906, -2073, -1362, 1, -464, 499, -397, -159, 322, 125, 193, 232, 134, 64, 232, -85, 48, 458, 350, 481, 387, 220, 504, 81, -541, -692, -720, -816, -647, -159, -101, -114, 320, 483, 184, -90, -1479, -2372, -2949, -1011, -2332, -245, 1281, 353, 143, 350, 266, 298, 275, 38, 39, 136, 209, 162, 176, 125, --45, -107, 242, -117, 48, 275, -249, -48, -221, -734, -529, -536, -1003, -1086, -1357, -1504, -2041, -1997, -1674, -2083, -544, -136, 942, 382, 384, -184, 21, 220, -120, -77, -16, 51, -2, 25, 62, 76, 18, 131, 220, 121, -259, -352, -464, -646, -527, -201, -153, -82, 35, -164, --531, -1056, -1167, -1114, -991, -432, -479, -29, 174, 70, 399, 336, 356, 294, 404, 120, 243, -99, 265, 54, 161, -21, 47, -7, -36, --214, -272, -154, -149, -189, -225, -214, -289, -327, -373, -519, -582, -646, -684, -731, -878, -600, -403, -467, 499, -330, -52, -63, -326, -285, --477, -423, -165, -383, -401, -347, -87, -104, -252, -180, 337, -190, -118, -137, -129, -115, -122, -138, -217, -298, -371, -408, -463, -527, -491, --443, -399, -384, -329, -515, 19, 496, 1054, -264, 410, 980, 1043, 1069, 1022, 1140, 1194, 1204, 413, -192, 1166, 451, -9, -412, -265, -288, --269, -260, -240, -201, -240, -262, -290, -327, -360, -405, -383, -381, -374, -382, -375, 470, 333, 736, -289, -988, -1419, 120, -793, -1346, -1406, --1395, -1258, -1386, -1391, -1359, -792, 19, -1456, -875, -263, 745, 427, 509, 517, 496, 487, 487, 476, 471, 449, 496, 498, 441, 467, 431, -327, 383, 414, 477, -1169, 280, -214, -164, 185, 82, 348, 223, -91, 197, 231, 140, -102, 10, -24, 83, -920, 506, 644, 610, 695, -654, 635, 592, 510, 495, 480, 621, 560, 291, 318, 286, 173, 308, 454, 357, -422, -84, -318, -104, -6, 115, -138, 221, -113, 439, --67, 254, 1, 229, 41, 4, -229, 337, 854, 701, 902, 742, 714, 729, 643, 644, 535, 771, 688, 232, 350, 193, -8, 140, 860, -306, -510, 48, 175, 106, 311, 264, 231, 210, 400, 181, 331, 478, 442, 499, -149, 252, -279, 377, 989, 905, 1224, 1070, 1041, 984, -714, 666, 659, 1040, 692, -265, -260, -265, -166, 297, 1423, 447, -362, -231, -495, -425, -47, 120, 299, 308, 187, 309, 344, 265, 219, -297, -26, 250, -292, 111, 1053, 608, 543, 103, -177, -310, -80, 20, -131, -30, 150, 610, 454, 103, -81, 371, 887, 1358, 1463, 1260, -1181, 515, 389, 624, 307, 212, 98, 120, 211, 388, 235, 134, -237, -287, -784, -270, 670, 779, 1151, 1147, 864, 126, -495, -1014, -1329, --880, -1058, -1354, -1661, -425, 1678, 882, -264, -471, -670, -419, -165, 437, 581, 805, 229, 80, 211, 103, 282, 461, 406, 408, -97, 323, -192, 168, -184, -696, -631, -512, -210, 97, 178, 447, 748, 1773, 2732, 3044, 2602, 1558, 1185, 189, -177, -540, -204, 135, 155, 336, 261, -255, 182, 112, 219, 112, 160, 275, 321, 339, 197, 104, -162, 26, 278, 359, 453, 460, 264, -35, 299, 606, 707, 493, 385, 560, -645, 913, 1169, 58, 775, -453, -1113, -360, -178, -119, 111, 243, 85, 164, 91, 168, 201, 234, 71, -3, -41, -96, -270, -200, -60, --181, -115, -50, 141, 454, 568, 491, 548, 372, 461, 932, 857, 744, 751, 526, 162, -364, -601, -231, -239, -62, 83, 69, 155, 161, -268, 141, 186, 323, 209, 44, 8, -50, -67, -166, 295, 475, 517, 535, 528, 442, 372, 380, 356, 750, 986, 1313, 779, 508, 468, -143, 626, 422, 43, 155, -49, 99, 140, 282, 70, 220, -117, 225, -122, -8, -58, 119, 106, 120, 13, 344, 474, 211, 159, 104, -119, 121, 160, 181, 170, 288, 389, 628, 546, 477, 392, 420, 245, 103, -676, 14, -295, -301, -138, -195, 7, -17, -234, 0, 125, -66, -122, -47, 24, 73, -338, 182, 124, 113, 123, 92, 53, -9, 179, 360, 544, 688, 803, 910, 762, 644, 509, 353, 369, 486, --192, -583, -714, 27, -528, -753, -791, -809, -718, -833, -883, -855, -497, 41, -773, -482, -84, 535, 385, 409, 393, 389, 397, 379, 429, -443, 459, 484, 516, 588, 522, 491, 468, 434, 467, -359, -243, -534, 509, 923, 771, 233, 844, 913, 928, 912, 760, 875, 874, 807, -861, 316, 811, 856, 484, -575, -327, -378, -385, -388, -388, -360, -387, -404, -458, -403, -414, -503, -397, -331, -253, -255, -130, -79, 814, --48, 434, 376, 126, 165, -136, 14, 360, 116, 30, 120, 292, 162, 228, -4, 731, -232, -499, -429, -525, -551, -559, -475, -549, -586, --700, -539, -505, -666, -424, -333, -163, -46, 171, 103, 546, 325, 491, 352, 321, 282, 330, -51, 483, -94, 383, 81, 427, 207, 181, -116, 356, -50, -639, -460, -566, -555, -571, -411, -567, -639, -894, -568, -609, -1092, -529, -266, 272, 408, 854, 693, 836, 530, 679, 514, -426, 291, 61, 97, 65, 177, 215, 156, 219, 62, 271, -182, 296, -52, -705, -587, -775, -874, -866, -562, -783, -941, -1281, -747, -636, --1165, -396, -89, 562, 1136, -1736, 32, 890, 387, 379, 374, 146, 95, 448, 477, 203, 300, 307, 287, 279, 197, 255, -148, 274, 143, --493, -68, -63, 508, 507, 278, -230, -410, -622, -508, -816, -1261, -989, -1063, -870, -1119, -54, 232, 830, 730, 547, 507, 307, 749, 269, -171, 46, 93, 212, 212, 165, 133, 67, -3, 185, -144, -342, -320, -1034, -848, -593, -69, -113, -263, -599, -271, -183, -575, -111, 239, -989, 558, 222, 53, -288, -286, -55, 392, 648, 615, 143, -139, 124, -43, 73, 112, 446, 369, 39, -165, -8, -311, -778, -512, -503, --953, -1201, -990, -707, -388, -169, -250, -114, 378, 875, 755, 1146, 413, 929, 537, 180, 375, 199, 218, 60, 102, 274, 290, 342, 230, -245, 142, 311, 356, -97, -107, 83, -173, -344, -159, -9, 296, 705, 1372, 1564, 1961, 2462, 2601, 2007, 737, 552, 444, 890, 1003, 985, -1215, 845, 395, 383, 426, 430, 488, 322, 92, 192, 80, 81, 198, 62, -10, -65, -15, 95, -91, -14, 119, 316, 551, 785, 1283, -1277, 1321, 1232, 978, 701, 368, -116, -109, 395, 999, 159, 680, 445, 374, 201, 188, 52, 93, 41, 27, -42, 154, 228, 294, 149, -199, 287, 246, 108, 98, -59, -7, 168, 547, 657, 452, 250, 135, 113, 323, 207, -251, -375, -288, -38, 95, -108, 112, 502, 337, -419, 328, 243, 183, 294, 225, 440, 173, 166, 46, 126, 148, 219, 288, 468, 352, 94, 91, -89, -53, -33, 30, 165, 288, 404, -347, 312, 255, 249, 169, 31, 57, 122, 177, 388, 53, 202, 137, 63, 33, 23, 136, 328, 295, 250, 374, 390, 321, 318, 195, -285, 184, 205, 259, 281, 332, 352, 370, 333, 288, 266, 224, 193, 159, 129, 145, 144, 184, 71, -13, 582, 745, 445, 462, 716, -515, 545, 556, 488, 563, 602, 598, 789, 513, 533, 767, 586, 41, 124, 125, 131, 127, 125, 135, 116, 103, 83, 80, 73, 63, -75, 74, 68, 63, 68, -371, -391, -289, -941, -912, -179, -805, -889, -396, -425, -406, -268, -326, -318, -255, -902, -824, -194, -894, -913, --183, -303, -308, -300, -303, -310, -328, -345, -353, -342, -351, -382, -465, -492, -523, -539, -465, -547, -565, -477, -403, -444, -398, -345, -320, --321, -489, -623, -498, -338, -439, -358, -329, -557, -386, -639, -412, -236, -375, -319, -329, -330, -370, -394, -413, -429, -488, -636, -849, -914, --945, -915, -779, -729, -522, -538, -445, -135, -154, -165, -125, -281, -68, -337, 28, -149, -139, -236, -179, -230, -304, -580, -298, -49, -210, --185, -201, -239, -382, -429, -489, -460, -538, -742, -1070, -1306, -1469, -1502, -1065, -1162, -335, 113, 99, 335, 313, 321, 305, 130, 58, 245, -227, 288, 400, 313, 297, -68, 110, -343, -69, 43, -297, -234, -224, -261, -476, -491, -532, -541, -826, -1323, -1804, -2070, -2239, -2165, -1632, --1569, -1745, -2131, -1458, -594, -306, -274, -377, 132, 323, 201, 322, 298, 20, 153, 232, -88, 24, -376, -225, 426, 391, 728, -120, -231, -306, 360, 303, 115, -43, -207, -696, -870, -833, -409, -1196, 997, 850, 75, 210, -63, -65, 180, 511, 218, 76, 21, -4, 121, 308, -337, 239, -121, -103, -376, -465, -494, -984, -1247, -1206, -1163, -1053, -972, -516, 24, -247, -985, -2232, -1955, -1987, -1424, -341, -424, -161, -102, -14, -24, 550, 451, 351, 15, -158, -16, -40, 45, -235, 221, 235, -385, -292, -596, -446, -368, -458, -314, -427, -573, -700, -407, -41, -265, 662, 418, -469, -543, -189, 497, -163, -1420, -98, 265, -72, 62, -60, 77, 61, 342, 345, 225, 162, 217, -78, 260, 202, -232, --187, -411, -227, -177, -350, -414, -677, -630, -319, -338, -441, -762, -188, -22, 211, -1048, -1762, -2015, -1933, -1473, -1235, -212, -152, -68, 230, -229, -17, -7, -7, 20, -22, -25, 26, 7, 32, 107, -70, -269, -182, -322, -262, 122, 9, -155, -293, -618, -831, -1314, -715, -604, --579, -1030, -1279, -1232, -1356, -319, -488, 37, -160, -161, -165, -51, -7, 6, 20, -29, 69, 126, 130, -18, -143, -230, -101, 40, -31, --19, -123, -388, -513, -593, -616, -427, -206, -6, 54, -88, -366, -447, -490, -341, -365, -220, -202, -404, -265, -161, -131, -74, -64, 12, -95, 109, 93, 109, 15, 62, 45, 65, 47, -42, -5, 56, 93, 170, 41, -112, -282, -262, -288, -294, -457, -549, -651, -561, -502, --416, -385, -260, -353, 15, -204, -208, -123, -147, -170, -170, -293, -321, -367, -287, -329, -146, -46, -127, 38, 234, 215, 290, 261, 289, -308, 379, 447, 317, 179, 46, -83, -207, -359, -327, -331, -316, -308, -336, -365, -490, -305, 334, -524, -310, 175, 172, 196, 248, 255, -268, 299, -367, -519, 358, -261, -378, -218, -215, -210, -198, -186, -190, -170, -232, -262, -297, -327, -357, -411, -384, -375, -360, -365, -462, -463, 344, 414, 491, 150, -735, 673, 270, -529, -574, -592, -636, -643, -659, -717, 265, 663, -821, 192, 565, 472, 415, 467, 433, 452, -460, 494, 455, 459, 483, 497, 508, 495, 559, 539, 411, 416, 306, 381, -217, 332, 273, 178, 352, 322, 403, 473, 414, 532, 429, -442, 252, 272, 461, 322, -34, 583, 505, 616, 542, 600, 609, 669, 560, 568, 683, 744, 803, 764, 922, 859, 496, 464, -125, -87, --30, -1, 85, 157, 180, 238, 120, 120, 234, 296, 213, 270, 276, 343, 230, 241, 379, 444, 554, 630, 491, 594, 598, 762, 542, -599, 759, 796, 885, 879, 1257, 1166, 207, 116, -478, -615, -519, -177, 1, 171, 187, 161, 116, 122, 123, 176, 336, 249, 337, 275, -257, 207, 347, 469, 655, 879, 651, 828, 923, 1053, 751, 705, 1013, 1222, 1436, 1459, 1973, 1709, 203, -173, 844, 482, -566, -626, -451, --183, 29, -109, 121, 318, 132, 335, 293, 41, 259, 273, 134, 223, 447, 546, 54, -52, -120, 69, -199, -700, -303, 63, 574, 330, -368, 285, 508, 581, 721, 595, 120, 835, 1235, 844, 545, 305, 231, 434, 178, 75, 104, -40, 130, 370, 425, 449, 334, 275, 35, -414, 751, 876, 1120, 938, 804, 883, 611, 443, 251, 538, 326, -481, 375, 419, -192, -45, 1065, 273, -373, -110, 290, 766, 619, 271, -113, -94, 10, 15, 59, -343, 422, 559, -134, 10, 33, -27, -35, 103, 309, 752, 1081, 1391, 853, 481, 339, 374, 1043, 2159, 3257, -3784, 3896, 2084, 1611, 101, -129, 292, -94, 316, 242, 204, 415, 366, 234, 201, 239, 83, 422, 387, 61, 89, -39, 34, 102, 146, -98, -67, -137, -115, 333, 713, 878, 1220, 1339, 837, 1474, 1942, 2822, 2033, 2244, 1158, -150, 221, 282, 258, 287, 204, 158, 138, 106, -26, 40, 183, 140, 128, 125, 305, 214, 203, 84, 52, 205, 356, 580, 881, 797, 922, 1199, 1258, 1244, 983, 1733, 2090, 2346, 2181, -1111, 872, -72, 192, 67, 193, 228, 184, 245, 179, 130, 122, 155, 90, 158, 210, 209, 14, -45, 27, 220, 210, 89, 283, 359, -466, 209, -35, -238, -166, 9, 258, 304, 438, 744, 929, 553, 489, 429, 494, 327, 301, 212, 195, 133, 181, 196, 182, 55, 78, -61, 99, 101, 104, 210, 80, 17, 96, 131, 55, -63, -184, 15, 214, 387, 334, 246, 166, 327, 464, 584, 532, 267, 354, -290, -234, 114, 127, 289, 270, 336, 336, 260, 313, 258, 230, 151, 107, 269, 201, 139, 122, 43, 64, 39, 27, 46, 30, 41, 27, -63, 108, 196, 247, 256, 245, 258, 266, 156, 256, 155, -118, -612, 291, -50, -473, -512, -529, -552, -584, -607, -640, -59, 209, -564, --86, 112, 88, 83, 77, 65, 65, 56, 46, 72, 98, 116, 140, 157, 193, 184, 185, 178, 193, 141, -563, -467, -659, -370, 133, -904, -555, 75, 804, 825, 832, 808, 889, 904, 909, 104, -464, 997, 154, -342, -689, -495, -569, -593, -571, -565, -561, -570, -577, -560, --631, -657, -629, -677, -629, -488, -510, -342, -560, 163, -581, -170, -88, -298, -186, -403, -422, -252, -386, -305, -322, -33, -104, -274, -297, -342, -657, -596, -650, -767, -729, -727, -701, -713, -722, -695, -869, -908, -775, -943, -849, -477, -410, -326, -610, -596, -512, -113, -156, -65, --19, 3, -143, -34, -200, 108, -235, 60, -97, -92, -188, -180, -524, -717, -717, -978, -850, -837, -810, -847, -902, -823, -1160, -1309, -1040, --1376, -1053, -299, -333, 320, -277, -787, -749, -202, -213, -21, 168, 23, 67, 59, 246, 224, 65, 184, 62, 79, -173, 20, -473, -698, --804, -1251, -1139, -1188, -1101, -1140, -1133, -1015, -1546, -1584, -1081, -1622, -1295, -104, 142, -1852, -867, -338, -501, -183, 6, -72, -103, 68, 152, -37, 217, 179, 10, 87, -34, -109, -441, -349, -782, -1108, -784, -859, -669, -455, -179, -704, -856, -888, -1116, -1449, -1959, -1386, -1048, -936, --1493, -432, -143, 75, -95, -493, -92, 116, 378, 66, -91, 30, -59, 113, 222, 159, 93, 22, 9, 223, -182, -929, -994, -1044, -1057, --996, -701, -460, -494, -784, -828, -717, -990, -951, -993, -892, -424, 631, 386, 186, 212, 591, 737, 578, -88, -11, -122, 4, -38, 7, --327, 264, 263, -89, -204, -345, -416, -326, -157, -262, -795, -1300, -1657, -1909, -1756, -1346, -1402, -1909, -2788, -1996, -1258, -945, 363, -792, 348, -234, -107, 112, 69, 238, 114, 339, 262, 75, 114, 186, -8, 306, 337, 17, 0, 45, -313, -881, -1103, -1146, -1329, -1317, -1136, -1101, --773, -402, 68, 74, -470, -1142, -2000, -2947, -1517, -1801, -410, 891, 344, 119, 327, 186, -37, 37, -85, -75, -74, -17, 81, 185, 179, -72, 51, 107, -22, 73, 183, 119, 40, -31, -265, -170, -316, -735, -751, -1133, -1869, -1580, -1373, -1351, -1521, -471, -265, 462, 41, 181, -129, 128, 184, 61, 68, 74, 39, -7, -36, -7, -3, -99, -29, 2, -16, -332, -463, -478, -576, -607, -525, -414, -186, 103, -154, --484, -1161, -682, -526, -523, -289, -284, -51, 109, -63, 107, 45, 34, -29, 91, -5, 101, -29, 144, 76, 102, 34, 78, -57, -179, --370, -323, -226, -199, -89, 25, 158, -11, -172, -293, -443, -507, -655, -533, -446, -366, -248, -261, -204, 431, -74, 113, 104, -51, 24, --157, -182, -99, -246, -265, -266, -140, -125, -221, -141, 81, -55, 16, -27, -25, -53, -100, -112, -196, -270, -374, -475, -593, -720, -623, --541, -445, -358, -299, -373, -166, 116, 443, -281, 77, 433, 453, 457, 425, 465, 474, 455, 12, -279, 425, 43, -193, -258, -225, -238, --228, -223, -209, -190, -249, -295, -336, -378, -413, -482, -424, -400, -376, -353, -372, 500, 426, 669, -8, -569, -1012, 265, -424, -935, -992, --992, -913, -996, -1003, -1006, -428, 210, -1051, -489, -5, 648, 434, 507, 507, 510, 510, 495, 516, 522, 549, 527, 537, 565, 557, 526, -431, 486, 463, 553, -664, 350, -27, -54, 220, 175, 361, 291, 39, 284, 279, 191, 18, 119, 165, 196, -583, 457, 582, 585, 631, -640, 637, 584, 646, 678, 731, 618, 584, 614, 596, 526, 310, 417, 641, 502, -89, 43, -148, -60, -17, 171, -75, 159, -90, 338, --30, 148, 16, 225, 159, 67, -106, 204, 685, 620, 745, 732, 760, 708, 822, 834, 967, 806, 846, 1026, 950, 763, 262, 483, 682, -656, 95, 249, 253, 106, 181, 289, 152, 95, 209, 201, 294, 154, 317, 434, 55, 266, -155, 166, 767, 790, 972, 1019, 1019, 907, -1056, 1144, 1351, 930, 839, 1003, 838, 475, -67, 279, 440, -167, -585, -322, -467, -262, -75, -72, 146, 258, 106, 246, 233, 88, 153, -147, -124, 96, -317, -17, 735, 344, 309, 71, 94, 240, 488, 507, 480, 382, 534, 581, 1204, 1343, 780, 387, 30, 348, 32, 82, --20, 65, 267, 379, 180, -27, 60, 33, 141, 179, 326, 296, 32, -24, -354, 119, 656, 740, 1256, 443, 3, -221, -455, -478, -240, --1033, -1154, -1047, -829, -902, -1153, -554, 941, 851, 277, 511, 542, 819, 446, -89, 88, 92, 110, 104, 146, -165, 369, 536, 9, 165, --33, 94, 76, -170, 50, 459, 891, 1127, 1127, 941, 568, 751, 1103, 1060, 2132, 2332, 1934, 1228, 346, -270, 15, 211, -2, 302, 362, -335, 318, 183, -17, 189, 199, -84, 267, 265, 107, 145, -233, -90, 146, 125, 87, -114, -465, -964, -937, -733, -338, -83, 277, 478, -1465, 1937, 2076, 821, 1311, 157, -758, -117, 131, 112, 157, 56, 9, 150, 20, 75, 133, 206, 264, 249, 159, 220, 56, 320, 292, -98, 150, 2, 241, 595, 853, 983, 1247, 717, 601, 635, 1163, 1310, 1307, 1186, 586, 88, -354, 8, -42, 137, 289, 248, 327, 266, -296, 171, 166, 197, 203, 120, 16, -88, -132, -135, 129, 243, 346, 130, -55, -182, 34, 163, 247, 283, 518, 869, 884, 861, 833, -617, 561, 358, 37, 136, -67, 21, 35, 99, -34, 149, -43, 260, 24, 179, 79, 189, 139, 156, 22, 349, 481, 246, 212, 280, -392, 448, 490, 507, 528, 525, 502, 547, 465, 433, 454, 415, 157, 132, -373, 135, -48, -39, 135, 120, 270, 227, 27, 191, 233, -177, 29, 88, 178, 182, -110, 223, 143, 176, 181, 157, 121, 98, 130, 181, 239, 308, 383, 455, 406, 347, 283, 211, 258, 340, --58, -355, -564, 125, -299, -581, -626, -648, -592, -687, -731, -732, -301, 109, -659, -298, 18, 342, 244, 262, 249, 248, 252, 244, 278, -296, 311, 324, 333, 362, 329, 318, 306, 297, 337, -319, -226, -484, 314, 735, 801, 53, 645, 877, 888, 874, 751, 862, 866, 812, -672, 160, 862, 692, 316, -507, -292, -343, -344, -355, -357, -352, -329, -331, -354, -384, -393, -393, -330, -286, -222, -256, -242, -249, 708, --189, 199, 183, -12, 93, -163, -64, 199, 1, -49, 14, 206, 123, 165, 0, 626, -286, -457, -418, -468, -493, -485, -446, -357, -354, --412, -494, -497, -448, -275, -145, -27, -104, -215, -109, 330, 68, 224, 112, 132, 196, 208, -92, 260, -167, 252, -29, 284, 120, 177, -100, 223, -183, -608, -498, -556, -596, -592, -534, -396, -410, -550, -763, -816, -740, -352, -73, 208, 49, -167, 23, 398, 20, 93, 95, -81, 233, 7, 35, -37, 186, 124, -121, 65, 31, 293, -153, 148, -301, -774, -696, -775, -833, -782, -615, -341, -326, -557, -856, -875, --696, -72, 439, 820, 503, -1298, -431, 299, 140, 133, 94, -70, -4, 94, 219, 118, 158, 183, 279, 163, -14, 106, -245, 95, -160, --709, -380, -465, -162, -146, -278, -515, -825, -881, -1044, -1003, -852, -645, -838, -1443, -1056, -1348, -431, 44, -169, -279, 156, 183, 162, 96, -0, 38, 23, 63, -61, 134, 182, 146, 20, 234, -11, -431, -419, -832, -649, -472, -173, -68, 6, 126, -489, -495, 51, 214, 72, --464, -943, 1199, 813, 874, 741, 959, 667, 522, -78, 150, 30, 56, 15, 77, -43, 342, 313, 199, -126, -85, -211, -433, -165, -136, --595, -924, -925, -1067, -1071, -798, -1396, -1461, -1357, -242, 490, 492, 1271, 312, 223, 42, 7, 113, 202, 314, 294, 241, 125, 37, 136, -98, -128, 96, 184, 52, 6, 154, -209, -570, -650, -789, -828, -686, -378, -322, 20, 760, 718, 727, 196, 722, 623, 40, 477, 33, -742, 895, 447, 406, 422, 287, 208, 229, 132, 125, 103, 147, 193, 332, 298, 101, 95, 334, 143, 167, 277, 178, 327, 376, 368, -593, 745, 937, 398, 56, -363, -307, -118, 122, 153, -36, 377, 489, 327, 289, 289, 219, 258, 248, 205, 78, 193, 184, 159, 114, -150, 226, 161, 25, 105, -17, -48, 21, -202, -186, -80, -24, -50, -22, -320, -455, -495, -320, -105, 150, 73, -21, 185, 428, 241, -275, 218, 173, 128, 216, 141, 329, 130, 235, 161, 232, 193, 222, 275, 433, 288, 128, 217, 218, 239, 221, 193, 145, 87, 19, --13, -43, -119, -30, 13, 33, 85, -27, 41, 304, 75, 235, 241, 201, 234, 177, 217, 350, 263, 207, 259, 282, 180, 144, 36, -207, -160, -167, -159, -201, -187, -185, -175, -226, -253, -267, -267, -268, -279, -231, -175, -126, -56, -11, -58, 314, 483, 392, 241, 485, -461, 480, 494, 442, 505, 532, 527, 520, 246, 476, 463, 262, -128, -39, -62, -60, -73, -88, -95, -93, -89, -90, -98, -100, -103, --78, -64, -51, -36, -3, -50, -88, 78, -576, -729, -369, -433, -681, -463, -503, -493, -378, -443, -436, -384, -681, -458, -335, -673, -560, -120, -39, -26, -5, -27, -33, -53, -29, -25, -26, -59, -79, -82, -110, -118, -103, -103, -123, -180, -579, -210, -403, -312, -178, -143, --83, -216, -388, -254, -152, -218, -230, -159, -272, -135, -530, -99, 29, -74, 38, -21, -24, -73, -27, -50, -106, -189, -232, -207, -268, --285, -220, -234, -180, -171, -439, -307, -309, -217, -154, -3, -202, -2, -283, 66, -159, -11, -183, -59, -20, -89, -363, -103, 144, -17, -138, 2, -16, -157, -12, -14, -64, -193, -309, -286, -506, -579, -344, -365, -204, -267, -457, -346, -217, -92, 58, 252, 94, 42, 149, -181, 154, 144, 146, 269, 4, 147, -356, -29, 188, -86, 225, 53, -4, -200, -54, -56, -224, -450, -615, -519, -820, -872, -460, -450, --561, -940, -1025, -599, -438, -425, -292, -120, -74, 80, 109, 144, 201, 231, 106, 124, 29, 130, -337, -315, 413, 302, 552, -228, -195, -255, 330, 261, 73, -53, -155, -260, -319, -482, -778, -746, -278, -293, -659, -406, -344, 26, 214, -73, 16, -59, 32, -20, -21, -54, -244, 243, -24, -94, -304, -258, -206, -437, -367, -257, -343, -737, -658, -568, -307, -652, -645, -464, -587, -557, -465, -584, 812, 921, 619, -751, 646, 520, 247, -80, 114, 87, 6, 49, 109, -10, 175, 223, 29, -34, -306, -147, 44, -193, -344, -579, -571, -484, -106, 113, -378, -10, -284, -697, -788, -698, -483, 312, -955, -285, -28, -23, 141, 240, 367, 344, 180, 62, 38, 56, 21, -111, 27, 8, 47, --31, -294, -231, -205, -419, -512, -672, -726, -771, -848, -958, -896, -959, -515, 228, 305, 104, -719, -975, -778, -759, -245, 0, 57, 125, -117, -13, -11, 126, 166, 156, 156, 91, 294, 293, 195, -16, -187, 36, 41, 30, 151, 67, -78, -277, -232, -218, -113, -197, -245, --154, -407, -547, -666, -848, -266, -452, -178, -179, -43, 46, 194, 127, 266, 266, 192, 174, 165, 95, 11, -42, 36, 81, 138, 125, -201, 174, 65, -195, -196, -83, 52, 91, 73, -243, -248, 114, 83, 72, 77, -211, 48, -76, -211, -162, -195, -126, -55, 5, -10, -63, -2, 141, 123, 204, 152, 142, 68, 76, 18, 147, 280, 252, 325, 277, 234, 174, -2, -180, -344, -232, -170, -146, -111, -50, -49, 19, 38, 9, -23, 96, 35, 97, 144, 168, 177, 92, -8, 10, 59, 6, -26, 2, -66, -10, -126, -35, -38, -98, -124, --151, -163, -166, -106, -50, -42, -50, -73, -83, -44, -40, -33, -28, 61, 107, -212, -237, 18, -135, -215, -37, -50, -41, 8, -22, --33, -12, -256, -163, -29, -259, -201, 99, 47, 54, 55, 51, 46, 31, 31, 25, 34, 30, 33, 26, 27, 34, 49, 53, 71, -264, 204, 166, 506, 384, -245, 527, 425, -48, -74, -95, -169, -146, -154, -195, 437, 555, -247, 407, 556, 239, 236, 258, 257, 244, -245, 267, 259, 258, 260, 267, 292, 330, 365, 355, 292, 255, 122, 211, 117, 198, 222, 199, 268, 275, 255, 335, 374, 368, 278, -363, 250, 256, 430, 310, 234, 426, 279, 359, 356, 314, 299, 331, 294, 291, 306, 296, 355, 455, 578, 552, 352, 272, -82, 20, -198, 110, 40, 124, 175, 254, 182, 58, 232, 100, 185, 298, 279, 303, 319, 337, 443, 403, 283, 347, 364, 286, 275, 384, 321, -310, 328, 353, 539, 763, 1022, 907, 345, 146, -309, -233, -187, -226, -190, 12, 74, 164, 52, 62, 0, 115, 143, 105, 135, 174, -350, 228, 383, 450, 385, 531, 562, 440, 432, 510, 360, 318, 329, 358, 594, 965, 1390, 1201, 276, -34, 182, 354, 439, 284, -32, --121, -43, 143, 49, 116, 83, 126, 194, 319, 201, 180, 322, 272, 382, 344, 45, -32, -110, -89, -280, -572, -326, -186, -285, 122, -387, 554, 480, 377, 191, 219, -671, -376, -142, -115, 186, 329, 236, -85, -34, -49, 59, -31, -19, -56, 294, 379, 290, 170, 85, -223, 426, 579, 666, 558, 540, 410, 422, 133, -242, -440, -170, 618, 870, 814, 5, -373, 1156, 1374, 907, 781, 811, 491, 289, -3, -144, 41, 11, 36, 41, -29, 152, 235, 340, 100, 139, 35, 11, 44, -83, 9, 235, 434, 630, 423, 118, -443, -201, 1012, 834, -1002, 1655, 1200, 876, 48, -65, 320, 210, 463, 386, 364, 125, 24, 117, 62, 36, 131, 145, 165, 334, 126, 24, 0, 0, 11, -27, 183, 208, 2, 171, 71, 146, -124, 179, 805, 1768, 2333, 2575, 1583, 1547, 1070, 220, 354, 388, 261, 215, 246, 229, 272, 397, -235, 201, 178, 287, 275, 170, 232, 253, 234, 141, 113, 75, 59, 188, 518, 739, 994, 1380, 915, 887, 1162, 1150, 1188, 1030, 1335, -450, 433, 34, 272, 277, 363, 325, 250, 286, 252, 223, 195, 174, 94, 133, 249, 385, 271, 190, 168, 238, 302, 356, 728, 864, -785, 572, 228, -123, -135, 28, 421, 428, 447, 361, 434, 294, 192, 293, 308, 246, 223, 200, 202, 161, 143, 163, 183, 202, 296, -219, 158, 67, 167, 323, 341, 244, 241, 167, 144, 116, 123, 146, 218, 270, 386, 434, 491, 465, 484, 513, 408, 368, 435, 118, -336, 312, 308, 366, 372, 389, 438, 439, 459, 386, 400, 293, 229, 276, 158, 27, -1, -49, -20, -20, -16, -19, -31, 15, 59, -111, 182, 268, 367, 369, 370, 371, 377, 313, 353, 436, 317, -67, 472, 337, 38, 28, 16, -15, -18, -22, -39, 355, 431, -77, -278, 341, 174, 192, 192, 184, 184, 181, 169, 212, 243, 273, 293, 309, 337, 323, 323, 317, 330, 337, -403, -367, -445, -415, -90, -553, -503, -124, 462, 470, 477, 491, 522, 540, 588, -103, -453, 661, -50, -369, -416, -344, -397, -392, -400, -407, -416, -421, -430, -420, --479, -490, -444, -486, -467, -391, -413, -399, -529, -19, -447, -283, -136, -234, -165, -299, -364, -294, -379, -283, -241, -87, -110, -236, -177, -183, -400, -385, -471, -491, -523, -530, -533, -525, -536, -514, -662, -693, -569, -681, -621, -414, -456, -469, -501, -461, -374, -225, -125, -42, --9, -31, -106, -125, -189, -10, -35, 0, -70, -4, -27, -79, -239, -428, -495, -556, -578, -610, -654, -677, -747, -670, -996, -1064, -794, --1050, -888, -410, -536, -344, -463, -538, -539, -362, -156, 35, 201, 28, 15, 8, 131, 88, 172, 90, 80, 169, 82, 142, -122, -419, --596, -750, -828, -872, -840, -854, -848, -731, -1254, -1365, -958, -1289, -1008, -250, -400, -1191, -728, -122, -58, -65, -102, -155, 11, -1, 12, -33, 42, 118, 250, 69, 26, 137, -108, -201, -474, -630, -430, -344, -287, -251, -376, -611, -763, -1063, -626, -598, -804, -939, -1020, -1096, --1205, -662, -740, -843, -628, -292, 41, 140, -143, -54, -87, 15, -22, -35, -29, 187, 163, 40, 48, 147, -197, -593, -749, -955, -773, --495, -328, -39, -156, -724, -745, -774, -245, -436, -439, -455, -526, 499, 906, 1135, 892, 913, 333, 144, -88, -9, -52, -40, -30, -67, --49, -147, -116, 331, -59, -254, -306, -133, -153, -331, -674, -1065, -1543, -1285, -1207, -1254, -1425, -1787, -1720, -2724, -2511, -1670, -190, -713, 198, -138, 29, 364, 266, 335, 214, 14, -42, 36, -11, 10, 113, 51, 94, 305, -1, -21, -168, -529, -712, -706, -756, -601, -451, -440, --663, -884, -1139, -987, 14, -594, -923, -1408, -1001, -1360, -391, 538, 234, 158, 207, 123, 53, 159, 159, 277, 150, 113, 73, 181, 183, -143, -10, 19, -135, -157, -113, -212, -406, -549, -712, -509, -490, -694, -469, -480, -405, -1004, -1275, -1418, -1347, -659, -465, 147, -16, 186, -146, 158, 175, 76, 88, 159, 90, 39, 21, 58, 99, 86, 195, 217, 174, -12, -67, -5, 154, 242, 253, 179, 94, -37, -25, --211, -568, -301, -333, -584, -568, -185, -137, -68, -92, 42, 32, 73, 84, 131, 53, 71, 47, 232, 223, 170, 15, -57, -51, -22, --140, -142, -36, -11, -38, -62, -43, -135, -189, -246, -246, -205, -198, -200, -206, -170, -148, -22, -16, 426, 69, 171, 187, 68, 96, --9, -28, 26, -70, -77, -81, 1, 27, -81, -40, 67, -23, 55, 27, 47, 57, 70, 87, 36, -19, -85, -150, -228, -293, -239, --182, -131, -90, -61, -107, -22, 180, 537, -136, 128, 472, 494, 504, 504, 534, 548, 556, 92, -133, 496, 98, -81, -72, -49, -56, --48, -42, -37, -24, -52, -71, -89, -111, -132, -179, -144, -132, -115, -100, -122, 433, 311, 527, 161, -266, -788, 361, -153, -661, -707, --717, -688, -747, -750, -735, -162, 319, -797, -202, 188, 550, 391, 447, 456, 454, 449, 433, 433, 438, 465, 457, 467, 497, 476, 433, -323, 352, 237, 442, -439, 318, 1, 41, 257, 207, 337, 304, 128, 280, 261, 291, 93, 167, 260, 281, -265, 512, 518, 542, 588, -585, 566, 511, 509, 521, 590, 572, 626, 707, 694, 572, 262, 241, 181, 365, 43, 146, -144, 62, 103, 189, 30, 123, -28, 200, --9, 296, 108, 263, 224, 252, 191, 397, 632, 602, 737, 721, 710, 638, 599, 622, 793, 762, 854, 956, 831, 541, -38, 66, 26, -283, -19, 143, -65, 129, 196, 224, 121, 43, 59, 63, 164, 304, 247, 344, 208, 418, 199, 428, 739, 795, 965, 965, 930, 806, -738, 765, 993, 925, 1106, 1331, 1188, 690, -167, -213, 452, 42, 95, 180, -271, -183, -28, 49, 38, 93, 67, 58, 126, 236, 135, -177, 164, 301, 44, 250, 555, 226, 194, 313, 316, 77, 184, 261, 405, 870, 965, 710, 639, 482, 130, 186, -17, -268, -343, -155, -280, 214, 189, -83, 54, 26, 55, 35, 10, 83, 301, 313, 229, 138, -85, 160, 616, 749, 1079, 621, 351, 131, -142, -306, -633, --279, -43, 315, 249, 163, 66, 133, 484, 754, 748, 724, 698, 254, 30, 3, 27, 33, 35, 65, -22, 26, -96, 82, 462, 297, -141, 137, 140, -83, -34, 444, 821, 822, 994, 735, 60, 221, 546, 1387, 777, 514, 457, 182, 1052, 167, 174, 436, 381, 506, 385, -283, 21, -36, 17, 46, 43, 139, 72, 85, 398, 59, -183, -23, 178, 288, 386, 274, 185, 7, 284, 146, -416, -597, -395, 629, -1255, 1996, 2706, 1612, 1402, 488, -344, 99, 260, 118, 165, 226, 225, 334, 318, 226, 178, 141, 150, 154, 219, 157, -7, 56, -83, --263, -250, -317, -151, 115, 224, 363, 609, 942, 1269, 1745, 1601, 1321, 1113, 1219, 414, 215, -267, 72, 117, 225, 285, 207, 204, 168, -255, 144, 128, 165, 250, 254, 178, 148, 141, 119, 319, 482, 616, 755, 767, 766, 620, 449, 171, 353, 558, 850, 651, 602, 528, -354, 400, 242, 105, 204, 67, 118, 132, 203, 99, 168, 46, 208, 109, 203, 81, 67, -12, -13, -22, 40, 93, 34, 30, -4, --20, -34, 96, 241, 373, 475, 514, 588, 496, 421, 381, 341, 305, 307, -97, 246, 130, 118, 216, 192, 277, 293, 193, 300, 304, -291, 178, 191, 266, 218, 19, 182, 133, 154, 163, 167, 177, 162, 221, 262, 320, 355, 412, 486, 453, 429, 387, 346, 319, 381, -170, -56, -290, 263, -37, -283, -303, -321, -299, -351, -376, -378, -21, 253, -354, -40, 170, 318, 270, 281, 271, 271, 270, 266, 291, -308, 325, 353, 373, 402, 373, 362, 354, 348, 381, -328, -283, -457, 83, 486, 716, -108, 412, 745, 763, 751, 664, 747, 759, 760, -437, -22, 798, 476, 122, -451, -286, -341, -347, -347, -352, -358, -359, -358, -353, -363, -358, -335, -341, -323, -257, -318, -358, -331, 481, --269, 16, 106, -57, 9, -189, -149, 30, -138, -129, -31, 128, 66, 50, -12, 547, -268, -395, -399, -461, -457, -462, -457, -441, -438, --443, -476, -457, -387, -381, -316, -166, -304, -497, -243, 74, -40, 34, 70, 114, 92, 153, -91, 94, -221, 129, 17, 224, 84, 119, -140, 245, -89, -485, -450, -550, -538, -561, -578, -586, -588, -566, -632, -590, -458, -447, -307, -57, -377, -613, -170, 48, -200, -188, 70, -106, 156, 31, 3, -86, 55, 50, 128, 83, 45, 310, 87, 357, -51, -530, -546, -734, -737, -751, -698, -644, -619, -681, -830, -706, --470, -360, -92, 266, -257, -1091, -636, 447, 359, 74, 62, -44, 58, -53, -5, 64, -17, 43, 250, 124, 20, 153, -138, 117, -92, --652, -445, -575, -103, -110, -362, -807, -931, -784, -332, -405, -892, -934, -1100, -1266, -1001, -581, -754, -458, -402, -79, 61, 23, -78, -12, --2, 14, 11, -2, 16, 38, 82, 277, 158, 314, -60, -425, -418, -724, -607, -461, -142, -203, -301, -518, -363, -24, 471, 233, 259, -434, 8, -197, 235, 900, 666, 689, 77, 27, -35, -11, -47, 19, 7, -88, 64, -108, -82, 493, 36, -9, -163, -311, -132, -133, --372, -639, -886, -1147, -1183, -1119, -1152, -1421, -1579, -1862, -1869, -1925, -792, 724, 650, 381, 272, 533, 328, 279, 164, 15, -9, 9, -1, --5, 96, -4, 52, 267, -98, -2, -188, -482, -494, -513, -474, -306, -10, 162, 166, -163, -224, -368, -351, -312, -180, -100, 667, -526, -254, 763, 354, 307, 295, 240, 308, 323, 218, 233, 202, 166, 69, 99, 124, 163, 59, 122, -158, -205, -193, -361, -200, -195, -256, --385, -414, -478, -1, 232, 255, -33, -283, -559, -444, -159, 130, 444, 296, 372, 273, 152, 143, 27, 23, 21, 91, 86, 149, 180, -185, 130, 172, 149, 192, 93, 113, 209, 260, 289, 362, 236, 268, 364, 253, 48, -272, -332, -254, -164, -109, -227, -52, 188, 95, -212, 166, 172, 154, 230, 140, 249, 66, 193, 87, 125, 63, 101, 29, 12, -173, -257, -207, -226, -198, -183, -153, -148, -146, -130, --149, -144, -186, -147, -164, -210, -169, 47, 77, 398, 78, 205, 184, 78, 92, 16, 54, 184, 97, 69, 118, 184, 127, 71, 39, -201, -20, 33, 43, 48, 67, 74, 82, 32, -15, -64, -115, -167, -216, -166, -104, -47, 21, 15, -29, 221, 398, 463, 119, 365, -479, 509, 521, 486, 544, 571, 573, 378, 128, 507, 354, 167, -60, -3, -19, -13, -18, -20, -11, -32, -44, -54, -60, -63, -80, --52, -41, -28, -20, 18, 142, 87, 295, -302, -566, -510, -127, -486, -531, -561, -558, -478, -545, -538, -486, -496, -176, -483, -500, -288, -289, 131, 154, 157, 158, 151, 126, 131, 137, 156, 150, 146, 161, 101, 81, 86, 91, 82, 116, -542, 13, -266, -147, 17, -21, -89, -18, -209, -73, -7, -33, -104, -28, -78, 37, -398, 133, 216, 148, 202, 208, 202, 134, 141, 145, 169, 169, 145, 139, -25, --82, -24, -21, 59, 102, -289, -120, -253, -63, -10, 32, -96, 53, -219, 86, -146, 82, -66, 67, 61, 58, -113, 115, 321, 188, -270, 246, 220, 54, 101, 130, 227, 219, 166, 198, -194, -302, -58, -122, 28, -42, -383, -228, -261, 44, 160, 185, 132, 27, 70, -38, 110, 286, 189, 298, 121, 361, -15, 205, 360, 180, 345, 336, 285, 52, 112, 175, 243, 201, 92, 61, -524, -674, -232, -263, -101, -672, -354, 6, -308, -218, -80, 45, -122, -88, 82, -3, 51, 155, 134, 174, 27, 172, -147, 31, 585, 378, 438, 86, 48, -82, 71, 224, 340, 700, 657, 156, 156, -36, -303, -213, 333, -252, -604, -322, 93, -57, -27, -84, -34, -44, -6, 4, -5, 67, -75, 105, 222, 96, -143, -125, 69, -8, 206, 94, -55, -258, -513, -494, -256, -160, -256, -525, -619, -371, 155, 204, -727, -150, 371, -451, 220, 2, -111, 11, -10, 33, 29, 81, -16, 72, -114, 11, 282, 199, -28, 69, 222, 15, 16, 226, 390, 472, 203, 90, --29, 500, 503, -100, -391, -965, -1549, -1147, 900, 511, 445, 419, 511, 391, 294, 215, 73, 33, -22, -11, -17, 90, 29, 7, 203, --28, -286, -140, -14, -39, -20, -56, -124, -79, -307, -448, -724, -601, -538, -339, 35, 479, 822, 895, -90, -413, -374, -53, 121, 86, -187, 269, 179, 232, 163, 255, 201, 27, 54, 100, 235, 68, -169, -66, -70, -198, -245, -202, -293, -386, -613, -614, -504, 82, 518, -834, 761, 501, 224, -82, 273, 19, -32, 95, 121, 110, 147, 84, 75, 56, 60, 95, 153, 216, 197, 100, 39, 61, 139, 158, -286, 335, 332, 221, 179, 205, 275, 437, 622, 565, 534, 640, 374, 218, 210, 189, 68, -34, -149, -10, -27, 37, 91, 149, 97, -163, 58, 147, 39, 55, 47, 117, 130, 71, -97, 46, 157, 35, 38, 33, 50, 37, 43, 17, 13, 54, 91, 133, 85, 46, -3, -27, 177, 134, -38, 127, 28, 31, 78, 54, 113, 68, -18, 45, 99, 65, 17, 49, 48, 95, -33, 163, 163, 162, 174, -168, 167, 169, 212, 245, 257, 261, 257, 263, 249, 231, 215, 190, 203, 245, -14, -127, -68, 48, -120, -119, -130, -131, -91, -128, --144, -131, -146, 32, -132, -136, -3, 249, 189, 202, 201, 203, 207, 204, 206, 207, 217, 227, 237, 247, 233, 226, 223, 214, 260, -50, 28, -48, 403, 470, 129, 334, 461, 258, 258, 239, 149, 195, 193, 163, 466, 369, 148, 458, 420, -24, 46, 38, 27, 29, -31, 40, 42, 46, 42, 60, 68, 68, 76, 71, 62, 35, -36, 83, 342, 99, 192, 221, 190, 180, 105, 172, 258, 184, 125, -206, 216, 199, 305, 196, 368, 166, 18, 72, 31, 38, 26, 26, 19, 30, 34, 95, 141, 150, 208, 189, 119, 62, -147, 67, -261, 148, 104, 196, 219, 174, 203, 6, 163, -55, 130, 144, 278, 243, 244, 265, 387, 228, -23, 38, -19, -18, -23, 23, 22, -58, 26, 157, 229, 181, 301, 212, 12, -25, -181, 43, 80, -86, -165, 124, 144, 123, 69, 23, -74, 2, 66, 135, 123, 132, -371, 234, 422, 257, -32, 74, 8, 18, 12, -10, -16, -11, -71, 189, 369, 372, 619, 499, 62, -24, -370, -134, 620, 582, 116, -124, 114, 226, -32, -69, 53, -15, 34, 183, 229, 193, 203, 138, 396, 352, -95, -135, -307, -168, -323, -555, -405, -252, -101, 167, -167, -86, -199, -349, -478, -264, -274, -407, -45, -59, 321, 35, -178, -130, -100, -58, -40, -7, -6, -14, -24, 84, 398, 181, 144, -106, 151, 304, 316, 368, 289, 117, -129, -217, -241, 135, 225, 100, 317, 378, 251, 136, -866, -417, 188, 113, 137, -84, 6, 72, -54, 3, -1, 30, -53, 37, -21, 53, 366, 207, 297, 126, 17, 125, 64, 138, 186, 370, -3, -237, -457, -257, -31, 143, 355, -40, -431, -796, 1764, 949, 641, 637, 568, 457, 270, 162, 108, 64, 23, -2, -9, 147, 82, 107, 235, 77, 74, -70, -93, 0, -4, 272, 272, 229, -85, -113, 6, 287, 244, -368, 301, 875, 1566, 1949, 671, 661, 351, 296, 382, 283, 283, 401, 338, 246, 213, -257, 199, 65, 61, 97, 201, 170, 193, 54, 42, 9, -162, -137, -218, -154, -337, -157, 296, 424, 728, 933, 1224, 1208, 953, 791, -483, 596, 451, 470, 385, 303, 176, 172, 68, 29, -18, 95, 172, 201, 215, 216, 230, 148, 126, 133, 110, 123, 123, 277, 352, -301, 398, 426, 457, 460, 424, 369, 150, 111, 206, 436, 48, 122, 271, 284, 335, 300, 274, 254, 259, 206, 245, 131, 115, 67, -123, 172, 242, 249, 291, 234, 155, 178, 148, 124, 98, 64, 117, 172, 242, 214, 185, 167, 160, 138, 65, 71, 204, 226, 199, -159, 199, 177, 163, 154, 139, 184, 249, 237, 205, 242, 227, 165, 175, 108, 148, 63, 38, 47, 40, 46, 52, 57, 66, 79, -108, 144, 192, 233, 218, 221, 227, 235, 158, 136, 364, 383, 199, 323, 381, 254, 263, 262, 228, 249, 256, 245, 405, 328, 226, -379, 326, 98, 131, 125, 119, 114, 108, 98, 115, 128, 138, 152, 164, 188, 179, 175, 166, 164, 188, -229, -216, -196, -400, -270, -192, -391, -272, 101, 105, 109, 145, 140, 153, 199, -270, -387, 265, -241, -384, -197, -203, -233, -235, -232, -234, -249, -235, -234, -238, --252, -264, -269, -294, -285, -227, -247, -216, -292, -151, -242, -261, -117, -136, -138, -168, -255, -296, -304, -217, -223, -112, -97, -212, -141, --55, -268, -224, -308, -313, -312, -306, -328, -288, -295, -331, -365, -404, -419, -495, -445, -259, -298, -262, -225, -311, -204, -185, -34, 9, --33, -40, -40, -196, -129, -112, -75, -27, -23, -9, -45, -147, -173, -239, -334, -381, -370, -379, -454, -373, -367, -420, -488, -566, -593, --723, -612, -254, -387, -132, -93, -191, -165, -195, 40, 151, 171, 102, 8, 1, 6, 41, 182, 127, 148, 136, 155, 37, -62, -240, --443, -522, -530, -529, -588, -466, -468, -582, -705, -827, -867, -1043, -769, -150, -303, -810, -844, -391, -65, -63, 15, 20, 68, -87, -126, --2, -43, 13, 100, 169, 179, 47, 16, -89, -248, -236, -145, -3, -192, -218, -217, -102, -87, -90, -103, -296, -542, -810, -940, -875, --907, 100, -465, -589, -324, -32, -158, -219, -222, -124, -101, -86, -3, -19, -12, -80, -45, 165, 79, 41, -110, -265, -431, -543, -304, --291, -513, -396, -332, -308, -107, -149, -414, -445, -343, -5, 40, -1287, -829, -169, -50, -150, -182, -114, 8, -15, -10, -62, -28, -79, --7, -104, -67, 147, 85, -31, -86, 39, 18, -52, -204, -446, -669, -738, -638, -510, -318, -521, -1257, -1471, -1727, -1844, -1560, 488, 1010, -818, 589, 613, 384, 263, 77, 94, 55, -18, -18, -9, 44, 25, 40, 108, 85, 11, -109, -141, -239, -318, -204, -270, -387, -837, --941, -781, -439, -413, -659, -1234, -1325, -1025, -134, -962, -502, 141, 108, 170, 181, 190, 179, 168, 133, 88, 168, 126, 15, 12, 41, -171, -7, -76, -134, -132, -140, -216, -418, -661, -883, -1073, -1071, -927, -638, -391, -181, -167, -230, -320, -753, -148, -132, 262, 135, 172, -75, 74, 98, 22, 18, 23, 29, 82, 115, 120, 73, 57, 51, 96, 59, -55, -157, -244, -211, -159, -168, 121, 342, 500, 489, -335, -9, -56, -143, -215, -167, -69, -32, -58, -12, 93, 109, 140, 153, 164, 156, 111, 122, 116, 83, 107, 134, 174, 140, 69, -46, 133, 191, 245, 199, 166, 122, 62, -11, -54, -156, -214, -272, -217, -191, -175, -128, -5, -37, 169, 16, 29, 45, -4, -1, --44, -81, -91, -118, -84, -100, -36, 4, -61, 19, 63, 137, 156, 95, 89, 67, 58, 55, 56, 49, 31, 6, -28, -79, -67, --61, -43, -34, -36, -55, -104, -8, 279, -136, -20, 223, 229, 236, 256, 256, 260, 269, -57, -128, 267, -12, -72, 65, 35, 29, -22, 17, 11, 1, -13, -27, -40, -49, -56, -71, -57, -53, -48, -51, -53, 312, 241, 348, 270, 1, -491, 380, 74, -369, -388, --401, -421, -447, -454, -465, 60, 354, -502, 19, 269, 348, 274, 312, 309, 316, 318, 313, 326, 331, 329, 340, 345, 345, 349, 328, -260, 276, 225, 384, -113, 310, 115, 141, 261, 190, 277, 280, 176, 251, 209, 235, 137, 184, 273, 227, -90, 365, 337, 380, 387, -399, 396, 372, 403, 411, 408, 434, 451, 448, 463, 398, 230, 241, 202, 315, 215, 226, -12, 177, 187, 150, 116, 103, 21, 87, -0, 170, 173, 269, 210, 199, 196, 286, 388, 409, 450, 478, 489, 467, 529, 558, 552, 606, 631, 604, 619, 464, 160, 213, 191, -361, 272, 303, 23, 241, 243, 161, 152, 42, -30, -51, 70, 178, 236, 296, 227, 295, 203, 309, 456, 538, 600, 640, 651, 581, -654, 648, 628, 729, 767, 744, 747, 494, 68, 116, 259, -3, -39, 95, -37, 98, 167, 92, -33, -62, -10, -25, 32, 110, 240, -280, 126, 291, 230, 308, 407, 217, 201, 193, 138, -22, 279, 450, 639, 581, 595, 700, 535, 425, 295, 177, 200, -23, 9, 91, -268, 36, -112, -157, -82, -50, -70, 23, 17, 21, 17, 98, 314, 180, 51, 207, 468, 568, 723, 471, 194, -105, -164, -119, 118, -207, 243, 38, 250, 239, 106, 187, -944, -691, -481, -255, -240, -147, -89, 35, 25, 34, -25, 2, -43, -17, -1, 57, 125, 241, -284, 188, 113, 55, 100, 450, 644, 656, 621, 498, 376, 462, 757, 1044, 1077, 827, 608, -692, 1459, 1025, 935, 904, 614, 545, 293, -107, 104, 47, 0, 39, 28, 42, 54, 90, 164, 204, 113, 51, 328, 433, 400, 389, 188, -102, -209, -183, -9, 63, 83, 24, -208, 750, 1848, 1492, 1421, 645, -49, 243, 347, 229, 247, 288, 234, 237, 162, 162, 130, 130, 32, 21, 124, 141, 83, 10, -146, --223, -163, -250, -195, -105, -77, -16, 173, 196, 491, 979, 1420, 1639, 1738, 1520, 540, 477, 114, 290, 184, 207, 187, 158, 165, 136, -139, 86, 111, 136, 211, 247, 276, 101, 38, -20, 30, 47, 10, 166, 222, 231, 375, 417, 391, 552, 696, 839, 599, 481, 439, -440, 361, 316, 257, 321, 264, 269, 245, 252, 197, 233, 187, 249, 135, 169, 142, 194, 196, 219, 239, 288, 323, 312, 302, 293, -285, 271, 346, 415, 485, 439, 376, 358, 351, 348, 309, 316, 206, 206, -60, 152, 94, 77, 140, 129, 179, 211, 166, 235, 232, -236, 179, 195, 272, 246, 135, 290, 216, 204, 188, 160, 140, 109, 157, 198, 260, 315, 385, 439, 386, 338, 299, 260, 204, 224, -197, 59, -173, 252, 86, -127, -143, -161, -164, -195, -214, -228, 107, 272, -182, 116, 248, 271, 231, 231, 211, 202, 192, 171, 198, -212, 221, 239, 252, 286, 263, 255, 242, 232, 243, -287, -234, -365, -88, 227, 556, -212, 174, 521, 547, 542, 495, 545, 555, 564, -185, -158, 625, 214, -77, -372, -256, -301, -312, -309, -307, -307, -287, -287, -304, -324, -334, -327, -333, -313, -243, -269, -247, -296, 331, --214, -48, 50, -76, -60, -168, -176, -99, -207, -171, -135, 47, 15, -53, -90, 301, -314, -350, -377, -430, -418, -405, -395, -332, -337, --389, -438, -456, -410, -411, -343, -183, -246, -273, -234, -14, -74, -29, 74, 99, 3, 105, -45, -42, -203, 14, -94, 138, 54, 57, -8, 35, -201, -430, -429, -550, -519, -509, -509, -371, -381, -500, -609, -666, -588, -590, -459, -144, -231, -237, -76, 140, -55, -135, 97, -161, 127, 115, 29, -96, -42, -16, 54, 143, 120, 201, 14, 140, -193, -512, -568, -771, -720, -689, -656, -424, -448, -645, -787, -809, --648, -563, -322, 91, -84, -872, -649, -280, -132, 146, 187, 78, -3, -96, -134, -43, -69, -8, 101, 188, 145, 75, -58, 77, -107, --503, -349, -353, -181, -179, -185, -276, -282, -222, -520, -765, -883, -1032, -987, -770, -711, -298, -268, -121, -135, -224, -159, -153, -114, -114, --93, -102, 12, 18, -27, -107, -67, 142, 134, 250, -55, -419, -528, -822, -653, -515, -319, -233, -185, 3, -28, 27, 42, 53, 19, --2, -221, -978, -889, -431, -327, -145, -168, -67, -67, -32, -14, -46, -49, -69, -30, -35, -121, -17, -21, 28, -127, -215, -117, -130, --458, -845, -1124, -1179, -967, -483, -720, -1074, -1436, -1504, -1285, -1035, -944, 163, 925, 957, 650, 650, 327, 204, -3, 57, 19, -21, 4, -1, -37, -28, 23, 4, 99, 220, -96, -208, -296, -397, -471, -445, -394, -378, -349, -275, -364, -435, -500, -1303, -1586, -1333, -465, -270, -204, 679, 377, 285, 310, 246, 210, 224, 116, 71, 56, 59, 113, 22, -2, 21, -14, 36, -264, -339, -290, -307, -293, -364, -646, --529, -642, -999, -862, -803, -723, -446, -162, 15, -92, -219, 9, 395, 206, 205, 136, 83, 99, 86, 107, 86, 72, 47, 70, 117, -158, 164, 122, 43, -5, -177, -286, -340, -373, -341, -224, -67, 100, 258, 327, 224, -78, -63, -133, -193, -168, -39, 101, 199, 142, -255, 205, 186, 145, 216, 166, 250, 150, 230, 156, 185, 140, 163, 149, 161, 73, 58, 138, 169, 210, 232, 264, 201, 138, 83, --44, -117, -195, -142, -113, -113, -35, -57, -60, 237, -21, 64, 69, -9, 3, -54, -46, 33, -29, -24, 8, 111, 138, 101, 145, -289, 224, 245, 207, 183, 165, 148, 138, 87, 41, -4, -48, -103, -179, -160, -140, -114, -85, -89, -135, 11, 176, 363, -66, 157, -351, 372, 384, 373, 411, 430, 433, 181, -15, 429, 215, 68, -15, 1, -11, -10, -16, -23, -25, -51, -72, -97, -119, -135, -161, --133, -123, -113, -111, -132, 258, 210, 366, -52, -346, -523, 104, -267, -498, -513, -516, -477, -532, -532, -513, -284, 56, -515, -308, -63, -349, 225, 259, 256, 263, 265, 254, 274, 275, 265, 257, 253, 270, 243, 229, 204, 230, 242, 278, -340, 203, -83, -16, 137, 66, -207, 144, -45, 81, 98, 67, 4, 72, 74, 105, -326, 215, 293, 278, 310, 327, 337, 304, 355, 350, 319, 307, 299, 336, 268, -226, 169, 197, 263, 201, -36, 61, -154, 70, 84, 46, 12, 117, -142, 106, -102, 58, 22, 158, 126, 70, -57, 111, 363, 301, -348, 369, 388, 306, 439, 444, 372, 334, 295, 390, 238, 159, 108, 172, 239, 143, 35, 135, -108, 137, 225, 131, 201, 70, -15, --61, 41, 137, 252, 339, 105, 227, -85, 84, 369, 328, 436, 491, 504, 361, 561, 537, 419, 392, 365, 490, 266, 131, 58, 74, -500, -235, -672, -335, -48, 9, 76, -14, -90, -113, -38, -33, 23, 61, 172, 248, 92, 256, 13, 200, 542, 319, 353, 78, 89, -208, 440, 604, 769, 417, 238, 278, 129, 118, 187, 331, 159, 192, 58, 79, -53, -175, -126, -56, -68, -70, -83, 24, 34, 21, -25, 35, 60, 117, -30, 43, 209, 147, 315, 170, 32, -104, -215, -161, 117, 92, 102, 1, 94, 86, 3, -97, -435, -768, -729, --409, -317, -96, -76, -47, -12, 61, -8, 35, 19, -12, 9, -1, -137, 164, 132, 98, 126, -78, -65, 81, 224, 291, 405, 464, -497, 474, 457, 352, 338, 345, 346, -140, 409, 483, 795, 740, 543, 366, 184, 52, 61, 11, -30, 20, 5, -43, -3, -10, -42, -169, 50, -27, 204, 201, 222, 62, -74, -280, -183, -232, -384, -437, -316, -8, -73, -2, 266, 153, 1187, 451, 5, 251, 267, 219, -248, 231, 163, 168, 49, 50, 66, 153, 52, 24, 38, 31, -137, -142, -219, -356, -327, -280, -213, -257, -32, -32, -248, -219, -164, -48, 530, 899, 1205, 1165, 367, 168, -65, 83, 29, 98, 170, 130, 221, 222, 209, 151, 133, 128, 151, 149, 135, 97, 56, -41, -29, 49, 32, -146, -206, -127, -18, 78, 148, 368, 596, 856, 781, 632, 467, 340, 359, 259, 124, 206, 146, 155, 131, 130, 98, -165, 125, 216, 136, 167, 141, 165, 144, 155, 121, 276, 360, 294, 322, 351, 393, 412, 437, 460, 478, 440, 395, 396, 332, 312, -300, 302, 166, 152, -117, 129, 26, 27, 110, 89, 165, 145, 67, 138, 173, 158, 130, 184, 252, 293, 201, 346, 299, 299, 281, -264, 244, 222, 245, 259, 276, 289, 307, 313, 289, 253, 217, 181, 174, 219, -5, -152, -229, 84, -125, -233, -250, -253, -226, -257, --273, -271, -110, 93, -212, -83, 73, 243, 201, 215, 215, 216, 220, 220, 221, 219, 216, 217, 217, 223, 211, 208, 205, 198, 199, --68, -53, -186, 254, 439, 353, 144, 401, 413, 436, 423, 340, 394, 393, 365, 405, 190, 394, 413, 259, -168, -63, -83, -93, -89, --82, -67, -59, -65, -97, -91, -88, -73, -63, -52, -33, -58, -71, -54, 442, 18, 141, 174, 89, 88, 13, 64, 147, 53, 20, -70, 169, 141, 189, 82, 354, -43, -125, -91, -139, -134, -125, -88, -58, -68, -135, -123, -95, -27, 11, 32, 37, -1, -134, -88, -220, 107, 59, 171, 173, 70, 186, 16, 90, -106, 92, -1, 215, 167, 192, 144, 214, 0, -188, -129, -212, -193, -161, -75, -24, --54, -227, -193, -169, -68, 33, 76, 38, -1, -115, 2, 287, 91, -119, 106, 156, 75, 129, 65, -130, -63, -19, -8, 150, 138, -276, 52, 196, -50, -246, -165, -290, -264, -222, -124, -22, -86, -316, -225, -95, 118, 293, 334, 152, 91, -360, -145, -88, -54, 323, -229, 111, 48, -62, -107, -59, -38, 12, 78, 161, 155, 240, 81, 283, 223, -246, -225, -369, -254, -260, -188, -209, -234, -138, -463, --605, -463, -517, -446, -307, -144, -482, -136, 299, 91, -195, -237, -261, -94, -102, -64, -89, 4, 15, -49, -56, -29, 54, 126, 238, -48, -146, -127, -281, -169, -132, -73, -9, 41, 119, 56, 139, 262, 386, 323, 81, -220, -37, -556, -511, -436, -199, -103, 52, -39, --3, 12, -17, -1, -2, -10, 65, -40, -81, 74, 217, -36, -211, -150, -219, -362, -450, -452, -433, -462, -446, -632, -705, -613, -401, --129, 2, 141, 25, 354, 672, 571, 493, 212, 69, -28, 29, -7, -22, -8, -20, -54, -38, -4, -82, 123, 245, -78, -186, -196, --167, -166, -158, -223, -66, 1, 8, 20, -48, -401, -252, -385, -700, -189, 867, 989, 862, 564, 417, 401, 329, 289, 251, 118, 39, -3, 42, 148, 76, 43, -45, 13, 65, -162, -193, -235, -326, -241, -168, -87, 53, 61, -86, -308, -455, -612, -139, 302, 556, 869, -234, 339, 384, 312, 260, 234, 180, 201, 191, 192, 144, 177, 138, 82, 78, 114, 135, 132, 46, -37, -132, -165, -155, -254, -292, --297, -318, -278, -142, 42, 212, 285, 412, 436, 356, 339, 136, 213, 331, 268, 323, 247, 182, 111, 163, 115, 212, 100, 179, 118, -177, 148, 179, 210, 305, 256, 176, 216, 206, 250, 288, 329, 353, 389, 419, 339, 278, 235, 206, 188, 151, 185, 104, 130, 224, -112, 171, 154, 127, 136, 116, 144, 224, 181, 160, 196, 232, 196, 209, 183, 299, 110, 115, 141, 135, 150, 148, 150, 104, 69, -52, 51, 57, 54, 65, 79, 91, 106, 84, 58, 218, 284, 210, 182, 280, 251, 263, 270, 242, 277, 290, 283, 310, 194, 283, -295, 206, 21, 79, 74, 85, 89, 95, 110, 100, 95, 84, 75, 66, 57, 67, 72, 75, 78, 86, -10, -15, 42, -271, -314, --89, -196, -285, -146, -142, -137, -93, -122, -115, -85, -293, -216, -33, -277, -261, 47, -10, -12, -13, -12, -11, -9, -7, -14, -41, --40, -41, -25, -47, -41, -12, -18, 16, -65, -212, -37, -176, -87, -38, -65, -4, -76, -184, -138, -83, -113, -74, -35, -86, -37, --183, -71, 6, -55, -39, -42, -19, 3, 9, -24, -100, -104, -112, -65, -133, -114, -28, -42, 26, -89, -213, -98, -185, -6, 11, --41, -29, 57, -160, -1, -112, -51, -52, 28, 70, -4, -144, -87, 29, -60, -62, -66, -44, -32, -8, -59, -205, -212, -233, -122, --253, -191, 5, -69, 108, -23, -7, 55, -132, 35, 160, 106, 171, 77, -22, -55, -7, 76, 164, 213, 111, 131, -99, -77, 5, --141, -141, -140, -83, -5, 3, -107, -304, -327, -331, -173, -387, -266, 23, -46, -66, -432, -848, -512, 120, 38, 16, -34, -97, -125, --68, -19, 28, 10, 82, 162, 181, 121, -85, -57, 123, 103, 198, -70, -27, 200, 242, 230, 203, -223, -390, -298, -378, -321, -190, --100, 85, -51, -69, -34, -340, -357, -257, -154, -100, -69, -83, -3, -2, -16, -18, -59, -133, 62, 42, -70, -120, -291, -310, -216, --198, -287, -95, -29, 61, 0, -123, -286, -242, -215, -145, -115, 76, -343, -473, -323, -314, -99, -29, -42, -50, 20, -14, 8, 17, -0, 35, -34, -192, 75, -5, -94, -1, -150, -200, -271, -300, -356, -170, -149, -269, -160, -296, -741, -701, -597, -482, 20, -804, -63, -392, 375, 338, 96, -3, -66, -5, -29, -66, -29, -28, -107, -74, -81, -124, 105, 39, -55, -89, -210, -168, -249, -285, -366, -358, --366, -393, -360, -374, -453, -522, -827, -1466, -1202, 333, 383, 418, 385, 302, 320, 317, 202, 117, 76, -29, -10, 28, 86, 56, 24, --41, -102, -212, -175, -148, -209, -189, -256, -237, -175, -244, -353, -468, -510, -634, -823, -664, -378, -14, 181, 208, 8, 96, 101, 101, -121, 187, 170, 207, 209, 211, 180, 134, 48, 4, -29, -24, 52, 53, -32, -70, -146, -202, -351, -438, -518, -528, -411, -182, -13, -215, 433, 642, 639, 505, 308, 264, 184, 64, 92, 82, 80, 64, 52, 41, 82, 39, 105, 91, 108, 113, 121, 111, 115, 105, -159, 210, 197, 216, 238, 273, 299, 335, 350, 360, 325, 303, 300, 241, 218, 226, 225, 137, 107, 61, 133, 77, 89, 119, 112, -141, 95, 45, 61, 91, 66, 63, 90, 80, 123, 87, 133, 162, 172, 192, 208, 221, 236, 230, 225, 219, 215, 210, 204, 201, -185, 164, 135, 161, 177, -8, -44, 58, 30, -40, 18, 12, 19, 49, 35, 32, 43, -60, 14, 48, -47, 1, 178, 166, 178, -190, 200, 212, 227, 216, 209, 201, 193, 184, 173, 169, 167, 169, 166, 180, 179, 146, 129, 303, 219, -132, 321, 243, -34, -31, --40, -85, -81, -90, -116, 235, 323, -119, 224, 315, 162, 162, 178, 174, 174, 180, 202, 187, 178, 151, 177, 188, 200, 213, 208, -174, 172, 122, 196, 149, 218, 177, 159, 185, 154, 181, 223, 218, 207, 154, 189, 154, 170, 279, 198, 119, 239, 188, 233, 223, -215, 221, 269, 223, 195, 150, 210, 260, 304, 344, 312, 198, 186, 101, 111, 225, 175, 57, 168, 156, 91, 140, 85, 112, 41, -52, 97, 156, 212, 244, 212, 232, 200, 209, 248, 256, 251, 277, 397, 304, 261, 132, 250, 327, 386, 490, 416, 214, 210, 52, -115, 317, 256, 10, 136, 154, 57, 138, 89, -75, -78, -8, 34, 164, 201, 269, 176, 180, 170, 238, 331, 346, 338, 385, 535, -370, 224, 82, 306, 493, 610, 721, 580, 207, 197, 226, 167, -211, -177, 273, 166, 112, 51, -32, -66, -66, 3, 39, 25, 103, -171, 311, 223, 247, 280, 227, 144, 17, 50, 36, 22, 118, 186, 281, -129, -119, 267, 269, 277, 183, 296, -104, 46, 379, 219, --93, -189, -215, -131, -98, -38, -62, -13, 7, -11, 27, 22, -1, 118, 142, 143, 224, 284, 349, 215, 121, 31, 109, 66, -6, -98, 123, 24, 272, 190, -208, -70, 299, -10, -276, -273, -180, -74, 35, -16, -24, 8, 19, 10, 10, 5, 91, 31, -67, 136, -218, 47, -68, -104, -112, 19, 180, 290, 392, 256, -71, -97, 102, 403, 760, 852, 821, 522, -408, -214, 168, 292, 195, 49, -84, --114, -36, -54, -62, -12, -6, -62, -44, -32, -42, 100, 127, 58, 46, 75, 123, 150, 123, 33, 114, 150, 173, 158, 98, -140, -418, 491, 257, -208, 1496, 1295, 722, 650, 524, 491, 437, 328, 218, 133, 60, 18, 31, 87, 57, 23, -58, 13, 15, -21, -58, --80, -59, -42, 91, 306, 206, 185, 312, 130, 48, -56, 120, 440, 893, 1271, 625, 543, 289, 372, 280, 317, 279, 230, 248, 234, -223, 216, 162, 53, 18, 39, 89, 96, 53, -33, -69, -95, -127, -94, -145, -246, -377, -425, -352, -189, 120, 546, 717, 808, 778, -693, 443, 387, 368, 332, 262, 225, 172, 134, 119, 122, 133, 131, 115, 147, 148, 156, 150, 163, 238, 204, 144, 146, 105, 148, -183, 221, 365, 497, 612, 649, 664, 697, 601, 554, 518, 488, 318, 327, 141, 275, 249, 238, 278, 271, 295, 311, 309, 324, 293, -295, 243, 206, 245, 183, 142, 98, 101, 150, 175, 206, 232, 251, 261, 275, 311, 356, 413, 484, 453, 427, 391, 357, 312, 321, -354, 282, 62, 380, 295, 109, 101, 95, 80, 77, 74, 65, 302, 352, 65, 272, 311, 222, 250, 259, 267, 275, 283, 294, 308, -323, 333, 345, 353, 372, 351, 344, 335, 332, 349, -194, -165, -240, -196, -1, 344, -243, -30, 273, 294, 298, 304, 315, 321, 339, --24, -217, 407, 15, -167, -211, -166, -197, -201, -206, -205, -187, -203, -211, -230, -230, -230, -222, -224, -210, -165, -185, -182, -280, 98, --172, -86, -37, -109, -87, -131, -156, -124, -189, -148, -142, -27, -31, -78, -67, 131, -210, -198, -248, -270, -284, -273, -223, -266, -300, --347, -353, -346, -307, -310, -266, -155, -197, -202, -283, -157, -130, -50, -3, 2, -52, 14, -4, -41, -95, -33, -84, 7, 0, 73, -28, -17, -129, -220, -268, -331, -357, -345, -252, -327, -381, -487, -490, -489, -424, -410, -320, -103, -189, -214, -250, -18, -50, -80, -3, -75, 47, 103, 72, -35, -52, -47, 22, 94, 108, 189, 59, 59, -101, -245, -365, -481, -517, -478, -319, -437, -569, -700, -699, -634, --525, -493, -328, -21, -130, -468, -356, -560, -424, 220, 112, 19, -27, -62, -93, -78, -7, 18, -7, 44, 88, 216, 21, -5, -157, --244, -118, -93, -78, -54, 57, -36, -69, -51, -558, -741, -632, -577, -484, -406, -413, -104, -143, 17, -16, -329, -290, -210, -122, -108, --69, -63, -22, 3, 0, -18, -71, -125, 42, 136, -47, -273, -430, -605, -464, -311, -188, -98, -127, -231, -232, -236, -304, -242, -271, --362, -200, 88, -31, -125, -184, -139, -117, -30, -99, -83, -23, 2, -27, -23, 3, 16, -79, -109, -36, -67, -150, -155, -154, -148, --395, -596, -711, -685, -569, -470, -604, -844, -1176, -1041, -857, -686, -46, -1501, -472, -115, -100, 41, -188, -186, -218, -98, -83, -90, -31, --7, -76, -74, -78, -102, -25, 40, 20, -190, -330, -369, -377, -295, -179, -238, -282, -291, -318, -359, -405, -837, -1294, -1804, -1750, -132, -502, 885, 610, 430, 520, 435, 212, 145, 43, 16, -15, -18, -11, 9, -5, -79, -64, -66, -141, -122, -69, -56, -74, -156, -331, --484, -592, -664, -610, -712, -923, -1191, -1082, -658, -369, 97, 93, 375, 246, 254, 223, 209, 175, 185, 199, 203, 176, 112, 32, -42, --65, -55, 33, 41, -21, -174, -296, -373, -442, -494, -497, -538, -479, -319, -334, -311, -287, 114, 279, 260, 197, 254, 229, 197, 139, -150, 124, 118, 87, 110, 97, 96, 94, 146, 151, 150, 116, 103, 49, 27, -72, -81, -37, -27, 32, 74, 121, 141, 150, 159, -203, 279, 323, 302, 294, 329, 301, 221, 211, 329, 227, 234, 247, 204, 204, 168, 134, 141, 96, 89, 69, 103, 109, 57, 83, -129, 92, 159, 164, 185, 205, 228, 258, 242, 226, 198, 179, 143, 127, 149, 169, 183, 190, 180, 173, 151, 232, 389, 117, 212, -355, 359, 366, 371, 380, 389, 397, 174, 78, 367, 176, 97, 132, 148, 152, 169, 177, 185, 198, 183, 177, 174, 166, 160, 143, -153, 155, 160, 167, 160, 255, 200, 295, 107, -123, -394, 218, -69, -348, -359, -360, -339, -382, -389, -391, -78, 186, -398, -89, 121, -317, 234, 264, 264, 261, 262, 274, 252, 247, 244, 257, 266, 276, 281, 265, 207, 228, 192, 250, -194, 223, 67, 39, 139, 106, -201, 197, 112, 171, 147, 139, 56, 105, 174, 176, -131, 291, 314, 323, 344, 335, 330, 344, 281, 261, 271, 294, 322, 335, 351, -304, 162, 193, 162, 120, 42, 115, 9, 72, 55, 59, 31, 110, 41, 131, -23, 97, 43, 158, 183, 172, 119, 224, 390, 367, -416, 395, 398, 442, 324, 296, 297, 357, 416, 449, 486, 378, 101, 156, 66, 10, 34, 171, 48, 72, 96, 40, 120, 87, 16, --58, 3, 69, 157, 238, 194, 236, 80, 226, 455, 459, 550, 525, 527, 546, 353, 246, 282, 387, 490, 507, 525, 345, -37, 16, -467, 163, -362, -273, 105, 84, 111, 21, -1, -20, -51, 29, 37, -11, 70, 171, 230, 289, 131, 202, 483, 333, 311, 178, 167, -205, 323, 451, 656, 279, 286, 552, 627, 605, 410, 400, 216, 205, 215, 180, -9, -146, -136, -65, -59, -30, -28, -10, 20, 48, -94, 61, -15, 61, -7, 158, 341, 334, 481, 292, 192, 123, -65, -123, -68, -94, -94, -168, -60, -108, -320, 10, 253, 146, -163, --161, -211, -95, -57, -93, -60, 13, 30, 24, 19, 21, 42, 44, -42, 128, 110, 133, 96, -25, 56, 217, 428, 611, 581, 480, -263, 271, 458, 724, 933, 903, 803, 382, -687, -663, -345, -124, -150, -156, -191, -176, -104, -84, -63, 6, 18, -12, -5, -32, -28, -11, -32, 162, 214, 218, 230, 178, 140, 109, 81, 51, 46, -59, -39, 167, 285, 386, 547, -392, 1182, 872, 468, 594, 522, 525, -455, 247, 146, 110, 81, 25, -3, -4, 10, 7, -37, 84, 10, 64, -4, -60, 10, 29, 23, -2, -6, 30, 135, 120, 148, -240, 79, 138, 481, 840, 659, 487, 204, 322, 232, 280, 294, 244, 290, 268, 268, 207, 168, 122, 61, 39, 27, 10, 4, -65, --52, -54, -102, -126, -156, -116, -177, -240, -290, -271, -129, 194, 439, 612, 649, 625, 597, 449, 329, 347, 231, 230, 208, 194, 133, -170, 105, 188, 122, 187, 141, 150, 114, 73, 32, 47, 70, 32, 23, 61, 90, 107, 184, 265, 335, 501, 647, 793, 737, 714, -735, 635, 448, 457, 188, 397, 310, 301, 354, 331, 376, 364, 296, 339, 322, 290, 218, 217, 258, 234, 122, 213, 202, 228, 239, -249, 263, 273, 330, 376, 415, 457, 491, 554, 531, 516, 492, 467, 414, 453, 339, 206, 40, 387, 210, 43, 22, 8, 13, -19, --36, -42, 181, 332, -31, 163, 279, 341, 325, 341, 348, 355, 362, 363, 382, 399, 421, 436, 451, 471, 451, 442, 432, 433, 443, --147, -130, -247, 60, 285, 422, -40, 232, 404, 423, 423, 390, 421, 422, 411, 246, 4, 453, 278, 89, -210, -120, -148, -154, -159, --159, -141, -163, -172, -181, -176, -172, -170, -151, -140, -123, -144, -160, -186, 304, -91, 94, 71, -39, 4, -83, -50, 64, -47, -55, --27, 76, 53, 62, 25, 321, -106, -155, -160, -201, -216, -223, -181, -238, -255, -257, -251, -229, -212, -157, -127, -104, -128, -237, -223, -27, 5, 124, 54, 38, 17, 79, -6, 118, -76, 63, -34, 107, 63, 123, 124, 177, -10, -184, -167, -245, -267, -269, -170, -300, --342, -377, -353, -317, -300, -170, -109, -114, -162, -238, -174, 42, -13, 39, -9, 4, 18, 47, 63, -15, -27, -41, -22, 59, 66, -247, 77, 221, 9, -187, -198, -335, -378, -382, -254, -429, -506, -515, -457, -347, -325, -124, -35, -87, -111, -504, -163, -83, -120, 257, -214, 118, 31, 4, -25, -46, 15, 16, 2, 61, 81, 220, 84, 217, 35, -271, -188, -266, -126, -117, -55, -283, -334, -198, -541, --595, -411, -271, -213, -280, -293, -145, -8, 96, -10, -195, -187, -178, -85, -77, -36, -31, -26, 2, 6, 14, -11, -3, 34, 153, -80, -152, -205, -403, -296, -196, -63, -102, -127, -110, -171, -147, -37, -196, -283, -323, -144, 71, 118, 74, -90, -145, -126, -36, -135, --84, -41, 2, -17, -6, 21, 23, -32, 21, -12, 45, 23, -134, -52, -26, -231, -388, -449, -536, -541, -457, -633, -721, -611, -451, --293, -242, -33, -970, -664, -483, -411, -245, -293, -219, -210, -127, -86, -41, -10, 5, -13, -15, -19, -61, -75, 67, 95, -133, -205, --287, -242, -172, -97, -73, -37, 34, -52, -161, -263, -571, -770, -904, -918, -108, 511, 931, 663, 508, 569, 404, 155, 139, 25, 54, --8, -30, -45, 3, 12, -59, 41, 116, -1, -46, -28, -45, -51, -172, -316, -264, -286, -398, -400, -448, -541, -750, -803, -738, -320, -243, 371, 558, 404, 364, 284, 240, 290, 240, 223, 190, 175, 139, 132, 57, 28, -20, -19, -58, -86, -228, -296, -319, -360, -334, --240, -292, -309, -321, -397, -509, -653, -346, -70, 115, 245, 278, 313, 382, 304, 331, 287, 266, 214, 226, 171, 194, 119, 181, 139, -154, 107, 109, 64, 47, -68, -120, -84, -94, -69, -70, -65, -89, -95, -109, 32, 194, 326, 364, 377, 414, 362, 288, 311, 494, -307, 363, 353, 289, 291, 242, 240, 289, 227, 196, 195, 227, 193, 151, 136, 228, 96, 140, 153, 164, 183, 202, 226, 215, 208, -189, 175, 137, 123, 144, 184, 219, 258, 222, 198, 333, 437, 498, 265, 408, 482, 491, 491, 472, 494, 505, 502, 379, 228, 472, -361, 245, 115, 158, 157, 170, 176, 181, 191, 184, 184, 186, 180, 180, 171, 187, 192, 195, 204, 210, 133, 97, 193, -122, -271, --242, -18, -235, -280, -293, -285, -226, -276, -278, -261, -237, -49, -244, -230, -103, 210, 127, 140, 140, 137, 134, 134, 114, 109, 111, -121, 126, 131, 125, 119, 97, 110, 117, 98, -269, 89, -21, -50, 19, 15, 87, 48, -27, 20, 36, 1, -32, 16, 10, 74, --168, 130, 191, 156, 175, 168, 164, 163, 101, 80, 89, 111, 123, 121, 104, 85, 44, 73, 103, 37, -131, 9, 26, -12, -25, -27, -41, 84, 1, 113, -61, 29, -35, 63, 93, 97, 9, 109, 260, 190, 212, 192, 179, 173, 57, 28, 49, 103, 137, 145, -101, 77, 12, 22, 132, 26, -82, 91, 151, 10, 27, 59, 87, 76, 104, -11, 2, 63, 109, 190, 124, 225, 42, 147, 312, -213, 252, 229, 220, 211, 13, -59, -8, 70, 116, 79, -4, -42, -114, -53, 183, -170, -461, -292, -4, 60, 119, 35, 13, -8, --28, 38, 38, -17, 54, 141, 147, 253, 70, 53, 322, 237, 304, 113, 134, 257, 233, 277, 371, 144, 132, 276, 293, 310, 239, -173, 397, 361, -72, -45, -88, -154, -114, -91, -48, -20, -10, -22, -3, 42, 85, 45, -16, 20, -43, 112, 170, 76, 134, 70, -13, -89, -157, -143, -15, -45, -115, -150, -441, -486, -303, 2, 33, 131, 24, -2, -269, -93, -87, -118, -91, -14, 10, 19, 35, -30, 19, 45, -7, 71, 3, 184, 175, 52, 99, 193, 253, 197, 259, 234, 156, 219, 251, 247, 308, 248, 115, 5, -478, -732, --613, -434, -364, -223, -149, -134, -107, -72, -25, 3, 13, -6, 14, -25, -36, -31, -86, 152, 154, 92, 41, -13, -90, -176, -160, --156, -142, -173, -191, -49, -197, -211, -186, -400, 14, 52, 186, 364, 368, 373, 275, 54, 21, 23, 19, 13, -8, -48, 11, 25, -10, 15, -62, 88, 22, -66, -22, -123, -173, -152, -123, -152, -196, -169, -148, -85, -181, -327, -401, -223, 504, 390, 290, 318, 268, -227, 288, 339, 315, 270, 246, 178, 171, 189, 113, 29, -60, -79, -91, -108, -105, -115, -106, -201, -201, -151, -175, -173, -216, -250, --271, -244, -131, 57, 306, 379, 440, 348, 239, 276, 215, 245, 251, 259, 191, 218, 128, 185, 110, 116, 86, 90, 60, 37, -35, -20, 62, -3, -15, -36, -57, -88, -89, -95, -113, 64, 228, 392, 425, 448, 507, 430, 351, 354, 253, 350, 291, 289, 320, 305, -328, 293, 224, 246, 252, 212, 171, 169, 166, 172, 103, 145, 152, 173, 194, 208, 223, 235, 272, 308, 327, 336, 326, 334, 329, -332, 334, 340, 336, 366, 221, 147, 157, 259, 147, 122, 106, 98, 115, 86, 73, 75, 93, 199, 78, 86, 164, 276, 261, 271, -275, 281, 289, 295, 304, 311, 324, 330, 340, 348, 344, 342, 340, 340, 375, 47, 34, -34, 242, 306, 168, 194, 283, 201, 202, -199, 168, 180, 172, 145, 290, 217, 151, 299, 264, 6, 53, 48, 43, 43, 42, 51, 29, 22, 16, 39, 49, 48, 72, 72, -46, 42, 10, 47, 254, 102, 235, 138, 83, 116, 64, 119, 213, 133, 88, 115, 136, 129, 192, 147, 264, 119, 59, 91, 62, -58, 41, 52, -11, -22, -16, 41, 81, 79, 146, 133, 49, 59, -44, -10, 187, 148, 259, 107, 79, 109, 110, 41, 213, 22, -93, 55, 146, 142, 171, 205, 276, 167, 67, 106, 75, 71, 58, 108, -31, -64, -81, 44, 127, 99, 255, 221, 35, 62, -50, -27, 195, 162, 263, 61, -13, 41, 35, 71, 61, 0, -18, -5, 73, 104, 243, 169, 287, 179, 115, 178, 128, 114, 86, 115, --96, -166, -157, 65, 208, 161, 371, 302, -13, 67, -115, 21, 95, 21, 119, 190, 186, 129, 55, 10, -24, 35, 38, 24, 85, -111, 209, 225, 344, 208, 21, -7, -146, -36, -46, -85, -150, -160, -124, -187, -78, 219, 238, 241, 147, 94, -11, 361, 194, 2, --9, -53, -112, -85, -53, -8, -11, -33, -9, 10, 54, 59, 96, 46, 107, 184, 114, 171, 137, 34, -9, 10, -23, -12, 19, -29, 40, 141, -156, -258, -211, -90, -10, 91, 144, -1, -163, -107, -18, -97, -72, -47, 8, -1, 20, 23, 51, 54, 107, 51, -147, 239, 19, 51, 61, 62, 56, 37, -52, -138, -157, -188, -61, 256, 490, 502, 314, 88, 10, -474, -568, -469, -373, -209, -121, --125, -96, -61, 3, 2, 12, 22, 24, 15, 5, -37, 61, 157, 53, 57, -3, -26, -75, -47, 9, 84, 191, 179, 70, -171, -2, 80, 105, 227, -62, 239, 427, 403, 377, 347, 190, 39, 55, 1, 33, 19, 5, -26, 25, 41, 21, 34, 103, 102, 2, --32, -86, -92, -49, 77, 58, 69, 136, -3, -23, -18, 53, -33, -272, -120, 529, 680, 625, 559, 482, 377, 328, 408, 319, 260, -185, 175, 169, 178, 119, 68, -4, -56, -111, -87, -152, -156, -107, -105, -79, -77, -126, -187, -280, -312, -364, -415, -414, -212, 147, -388, 288, 349, 419, 379, 377, 362, 343, 319, 299, 247, 256, 161, 148, 86, 100, 81, 83, 88, 117, 51, -37, -52, -107, -134, --167, -198, -182, -164, -162, -40, 63, 163, 253, 311, 351, 324, 295, 327, 394, 315, 364, 348, 326, 334, 298, 311, 344, 307, 271, -274, 257, 187, 170, 104, 146, -12, 1, 36, 53, 77, 93, 106, 112, 130, 154, 175, 192, 216, 218, 235, 257, 291, 271, 256, -403, 436, 358, 373, 431, 383, 383, 376, 347, 359, 359, 348, 400, 325, 323, 362, 306, 134, 180, 174, 176, 178, 182, 186, 202, -214, 225, 233, 244, 259, 262, 263, 261, 264, 310, -46, -43, -34, -186, -136, 130, -166, -146, 43, 38, 47, 95, 71, 72, 90, --139, -168, 131, -112, -160, -14, -31, -45, -47, -49, -55, -61, -73, -77, -79, -68, -66, -71, -68, -63, -50, -52, -30, -104, -76, --51, -7, -48, -69, -32, -43, -76, -70, -95, -62, -87, -37, -20, -70, -5, 6, -55, -17, -68, -72, -74, -84, -102, -140, -153, --156, -125, -122, -145, -143, -127, -79, -75, -34, -118, -154, -52, 110, -29, -39, 25, -26, 35, 31, 28, -31, -29, -23, 7, 41, -60, 9, 2, 4, -64, -91, -104, -130, -170, -237, -264, -268, -195, -181, -226, -209, -164, -71, -89, 16, -88, -82, 29, 235, -4, --26, 85, 52, 70, 153, 27, -17, 46, 71, 118, 119, 165, 101, 56, 23, -103, -149, -167, -208, -260, -375, -414, -398, -289, -280, --372, -364, -281, -113, -93, -160, -299, -380, -258, -79, 52, 119, 92, 29, -18, -27, 32, 44, 9, 60, 100, 112, 173, 88, -47, -16, 22, 67, 0, 34, 129, 72, 24, -89, -149, -168, -104, -116, -50, 55, -98, 185, 384, -125, -169, -129, -101, -67, -84, -30, --13, -14, -28, -13, 32, 46, 18, 3, 0, 6, 43, -74, -193, -265, -247, -205, -162, -121, -56, 18, -12, -96, -100, -533, -574, --212, -138, -128, -55, 51, 18, -228, -149, -106, -102, -99, -49, -4, -8, 21, 22, 10, 29, 55, -9, -43, 161, 114, 46, 33, --114, -220, -265, -348, -304, -164, -106, -197, -440, -400, -421, -530, -209, -309, -340, -554, -539, -382, -230, -90, -100, -84, -44, -11, -10, -2, 6, 8, -26, -32, -47, -30, 110, 12, -95, -184, -263, -290, -200, -261, -257, -214, -196, -235, -311, -604, -791, -967, -501, -1116, --661, -42, 75, 121, 109, 11, -113, -82, -71, -35, 17, 10, -46, 5, 29, 60, -60, -100, 7, -13, -38, -94, -133, -174, -241, --335, -374, -373, -344, -361, -413, -485, -650, -899, -1091, 270, 341, 501, 403, 404, 297, 310, 364, 313, 263, 186, 148, 138, 137, 77, --14, -101, -100, -89, -43, -106, -153, -146, -218, -223, -210, -177, -149, -171, -211, -329, -517, -492, -389, -128, 87, 189, 229, 193, 215, -232, 253, 274, 286, 254, 240, 192, 172, 128, 82, 67, 54, 35, 9, -46, -84, -95, -122, -142, -173, -199, -229, -272, -326, -387, --323, -258, -202, -64, 40, 140, 146, 189, 186, 294, 226, 234, 250, 233, 238, 204, 160, 131, 100, 101, 70, 74, 59, 2, 8, -12, -9, 25, 22, 32, 40, 47, 56, 73, 92, 100, 99, 88, 72, 89, 102, 129, 155, 175, 173, 140, 183, 339, 130, 178, -305, 299, 298, 306, 299, 297, 300, 112, 75, 270, 107, 75, 127, 126, 125, 128, 129, 131, 131, 134, 135, 139, 139, 143, 144, -152, 157, 160, 163, 197, 210, 170, 207, 223, 101, -143, 263, 118, -106, -122, -124, -121, -144, -154, -172, 116, 252, -188, 109, 235, -229, 196, 213, 211, 212, 208, 200, 190, 188, 186, 216, 227, 218, 239, 228, 177, 192, 167, 243, 29, 232, 227, 115, 144, 155, -174, 204, 213, 208, 165, 169, 115, 137, 203, 196, 62, 274, 248, 275, 276, 276, 252, 217, 180, 179, 194, 272, 306, 273, 325, -284, 153, 183, 139, 165, 169, 193, 246, 104, 74, 141, 81, 90, 182, 118, 59, 109, 105, 160, 158, 207, 231, 261, 300, 309, -328, 328, 297, 247, 174, 167, 183, 348, 421, 338, 456, 374, 124, 182, 113, 148, 162, 248, 349, 95, 1, 84, 55, 79, 144, -20, 6, 49, 109, 164, 181, 243, 228, 275, 362, 410, 462, 454, 383, 258, 128, 107, 159, 433, 529, 402, 540, 379, 5, 90, -323, 181, -2, -42, -71, 101, 208, 177, 82, 22, -16, 45, 60, 40, 106, 149, 168, 307, 293, 296, 344, 202, 109, 89, 82, -46, 152, 205, 184, 273, 393, 569, 536, 550, 569, 414, 96, 554, 170, 3, 100, 29, -18, -39, 9, 32, 2, -18, 1, 46, -87, 103, 124, 50, 16, 182, 263, 318, 395, 227, 122, 83, 40, 68, 126, 130, 135, 182, -96, -208, -147, -98, 28, 2, -21, --36, -193, -149, -98, -50, -60, -41, 11, 17, 40, 24, 56, 110, 127, 89, 155, 310, 158, 93, 66, 182, 331, 482, 381, 277, -192, 262, 478, 751, 937, 867, 609, 217, 434, -71, -410, -373, -351, -133, -55, -41, -51, -17, 14, 5, 8, 56, 49, 25, 38, -29, 43, 138, 173, 211, 178, 175, 108, 69, 49, 79, 143, 113, 91, 3, 268, 451, 671, 587, -133, -273, -262, 14, 117, 18, --59, -70, -63, -39, 8, 52, 44, 7, 18, 35, 84, 32, 16, 121, 82, 30, -49, -34, 22, 122, 92, 168, 325, 249, 279, -344, 447, 386, 199, -34, 545, 664, 494, 523, 467, 411, 371, 391, 358, 293, 190, 164, 149, 121, 106, 65, 22, -48, -60, -37, --31, -2, 11, 64, 67, 61, 37, -43, -180, -150, -133, -91, -197, -160, 27, 302, 307, 359, 362, 394, 368, 362, 346, 340, 292, -268, 250, 213, 148, 125, 93, 89, 63, 42, 24, -21, -79, -123, -178, -198, -215, -236, -218, -197, -188, -121, -85, -40, 70, 176, -251, 276, 251, 273, 202, 258, 263, 263, 287, 291, 274, 271, 245, 236, 200, 183, 141, 102, 109, 59, 26, 9, -11, 0, -3, --4, -8, -18, 27, 72, 122, 167, 221, 270, 259, 247, 248, 254, 222, 225, 290, 253, 151, 301, 267, 185, 168, 154, 136, 124, -112, 97, 225, 251, 90, 201, 224, 144, 149, 146, 141, 137, 134, 124, 149, 166, 183, 199, 214, 240, 232, 232, 228, 229, 252, --116, -96, -164, -47, 132, 382, -113, 85, 313, 318, 322, 327, 337, 338, 341, 97, -88, 378, 128, -25, -141, -92, -119, -125, -127, --133, -143, -146, -148, -154, -138, -136, -148, -132, -121, -100, -112, -98, -139, 200, -62, 94, 34, -58, -2, -76, -71, 8, -71, -56, --55, 32, 17, -17, 6, 220, -90, -114, -143, -171, -177, -196, -222, -233, -234, -241, -195, -186, -219, -180, -153, -100, -112, -119, -130, --10, 7, 202, 23, 6, 50, 43, 10, 100, -27, 45, -28, 55, 22, 46, 86, 110, 9, -126, -151, -215, -225, -263, -312, -336, --347, -360, -274, -256, -325, -234, -164, -80, -99, -64, -41, 66, 81, 285, 21, -40, 90, 33, 65, 147, 47, -19, 23, 56, 60, -143, 123, 205, 60, -123, -191, -297, -327, -396, -472, -511, -497, -496, -355, -325, -430, -287, -198, -82, -69, -359, -199, -138, -160, -57, -106, 160, 152, 64, -12, -29, 26, 48, 43, 94, 90, 125, 102, 172, 48, -190, -152, -172, -101, -78, -44, -124, -199, -347, -265, --289, -347, -298, -170, 67, -157, -88, 322, -32, -168, -98, -77, -54, -43, 6, 30, 3, -16, -3, 33, 15, 24, 56, 31, 88, -30, -177, -250, -426, -316, -216, -82, 10, 72, 84, -12, -11, 111, -278, -384, -194, -237, -122, -100, 7, -43, -140, -182, -135, -67, --82, -70, -16, -8, 23, 14, 27, 34, 91, -38, 3, 103, 6, 37, -32, -206, -372, -457, -566, -503, -268, -324, -441, -588, -578, --501, -540, -190, -192, 59, -285, -433, -279, -205, -64, -50, -47, 1, 13, -16, -6, 37, 23, 15, 1, 7, 73, 25, -94, -159, --240, -199, -165, -112, -212, -203, -115, -157, -203, -321, -646, -849, -958, -452, -1278, -859, -172, -121, -55, -95, -170, -159, -123, -128, -48, -24, 32, -9, 3, 19, 58, -38, -8, 4, 36, 45, -76, -103, -174, -253, -282, -291, -364, -307, -341, -455, -557, -656, -794, -1084, --52, 215, 527, 375, 415, 318, 275, 324, 271, 237, 139, 123, 86, 55, 48, 10, -26, -38, -41, -19, -106, -153, -174, -165, -171, --156, -147, -140, -157, -177, -307, -559, -539, -525, -450, -210, 45, 196, 258, 255, 343, 309, 302, 275, 278, 220, 230, 158, 188, 129, -110, 58, 34, -23, -83, -195, -245, -245, -274, -280, -290, -296, -362, -424, -484, -491, -484, -497, -337, -201, -90, 3, 46, 60, 289, -105, 172, 191, 141, 164, 88, 62, 76, 3, -23, -42, 6, -3, -59, -46, 36, -27, -6, -30, -42, -54, -69, -80, -81, -81, --88, -96, -108, -133, -100, -77, -37, 0, -8, -34, 69, 187, 362, 17, 179, 356, 354, 352, 339, 351, 355, 349, 127, -15, 324, -128, 20, -38, -28, -40, -42, -50, -56, -64, -66, -69, -70, -74, -76, -83, -63, -50, -39, -30, -41, 214, 178, 268, 58, -116, --232, 139, -84, -238, -257, -255, -218, -258, -264, -261, -90, 110, -273, -94, 63, 276, 199, 218, 216, 216, 209, 192, 190, 192, 194, -217, 224, 216, 224, 214, 176, 196, 201, 243, -130, 214, 122, 40, 101, 101, 163, 154, 93, 143, 132, 106, 42, 77, 102, 147, --83, 252, 267, 258, 273, 272, 251, 197, 182, 184, 196, 259, 276, 238, 253, 220, 134, 171, 218, 199, 67, 140, 163, 52, 30, -105, 29, 106, 80, 149, 13, 89, 28, 105, 94, 142, 111, 230, 333, 291, 317, 311, 270, 172, 153, 162, 203, 313, 354, 294, -315, 268, 116, 177, 238, 211, 122, 272, 351, 88, 7, 100, 76, 84, 187, 44, 28, 81, 118, 166, 92, 249, 142, 280, 399, -361, 418, 405, 332, 159, 95, 116, 185, 364, 393, 278, 296, 176, -29, 66, 383, 80, -212, -198, -200, 31, 201, 186, 100, 19, --24, 41, 66, 43, 116, 160, 124, 248, 139, 228, 359, 230, 266, 132, 131, 142, 317, 363, 230, 419, 478, 424, 434, 524, 692, -455, 192, 516, 66, -21, 111, -33, -33, -20, 35, 60, 35, 4, 13, 66, 80, 103, 98, 76, -4, 132, 245, 234, 310, 215, -149, 99, 50, 94, 188, 112, 103, 144, -111, -219, -182, -106, -20, -22, -100, -52, -173, -138, -155, -23, -57, -35, -1, 37, 60, -19, 51, 121, 75, 83, 82, 208, 219, 131, 94, 241, 357, 420, 375, 329, 325, 409, 545, 640, 613, 529, 369, 98, 275, 41, --188, -226, -241, -97, -27, 34, -11, 25, 32, 7, 10, 59, 63, 51, 69, 101, 23, 80, 210, 234, 220, 211, 156, 70, -26, --38, 15, -68, -51, 53, 134, 267, 476, 291, -215, -648, -654, -277, -117, -226, -228, -135, -155, -92, -39, 43, 57, 34, 20, 25, -83, 28, -28, 114, 112, 41, 3, -32, -23, 29, 80, 114, 108, 168, 194, 224, 195, 140, 111, -126, 143, 226, 169, 244, 246, -264, 281, 295, 285, 242, 175, 132, 100, 73, 91, 69, 53, -8, -16, -26, 34, 66, 58, 55, 27, 14, -2, -39, -114, -46, -6, 74, -26, -100, -124, -31, 240, 290, 252, 320, 321, 312, 291, 286, 230, 232, 181, 212, 153, 160, 96, 73, 18, -24, -101, --83, -82, -157, -193, -210, -219, -236, -229, -223, -222, -210, -218, -221, -127, -25, 66, 148, 116, 131, 38, 133, 108, 117, 158, 167, -163, 144, 82, 89, 72, 38, 9, 22, 43, 44, -11, 58, 18, 6, -12, -36, -61, -93, -50, -16, 20, 51, 90, 119, 123, -113, 112, 109, 85, 104, 48, -15, -45, 82, 1, -32, -54, -69, -69, -95, -112, -124, -38, 49, -106, -39, 31, 76, 48, 46, -34, 26, 19, 4, 23, 33, 45, 56, 64, 79, 76, 81, 85, 89, 76, -37, -24, -108, 148, 290, 332, 63, 245, 321, 328, -325, 296, 322, 319, 303, 252, 93, 315, 272, 159, -82, -22, -41, -46, -48, -53, -60, -62, -63, -68, -51, -46, -55, -35, -27, --24, -32, -36, -24, 321, 42, 193, 113, 25, 67, 2, 43, 129, 57, 36, 50, 104, 81, 101, 80, 294, 31, -34, -28, -63, --70, -92, -118, -124, -120, -122, -70, -49, -71, -17, -7, -10, -16, -52, -17, 175, 114, 244, 79, 59, 87, 110, 33, 156, 0, -108, 20, 117, 74, 90, 138, 212, 118, -46, -29, -85, -89, -128, -161, -181, -182, -190, -104, -66, -117, -6, 31, 15, 23, -31, -72, 244, 197, 301, 64, -37, 67, 36, 77, 125, 57, 4, 11, 63, 46, 154, 126, 281, 178, -14, -6, -98, -124, -193, -272, --311, -287, -282, -119, -55, -118, 59, 64, 2, 35, -200, -14, 75, -69, -74, 123, 200, 214, 120, 18, -35, 23, 50, 64, 124, -102, 147, 79, 215, 159, -158, -127, -188, -89, -95, -136, -90, -146, -368, -170, -133, -190, -117, 29, 274, 66, -256, 213, 153, -18, -43, -52, -91, -35, 10, 53, 41, 7, 14, 32, 16, 59, 122, 97, 163, 92, -37, -20, -158, -102, -46, 51, 98, 119, 75, -28, 74, 211, -5, -143, -214, -260, -104, -50, 10, -63, -51, -135, -104, -14, -49, -61, -12, 13, 37, 12, 52, 68, 101, 7, -87, 70, 9, 91, 11, -77, -184, -230, -339, -338, -171, -221, -207, -99, -128, -84, -132, -77, -4, 55, -84, -215, -154, -144, -53, -29, -4, 34, 44, 2, 8, 55, 54, 80, 76, 81, 143, 32, -8, -3, -58, 1, 33, 35, 0, 21, 84, -6, -82, -229, --228, -236, -253, -27, -532, -479, -219, -208, -138, -201, -237, -133, -120, -131, -53, 10, 40, 40, 29, 29, 49, 33, 105, 49, 60, -69, -9, -17, -48, -79, -26, -22, -108, -61, -112, -255, -310, -337, -397, -417, -257, 27, 268, 205, 234, 229, 191, 233, 170, 148, -90, 105, 70, 54, 64, 70, 75, 21, -21, -14, -47, -56, -55, -71, -80, -101, -112, -135, -166, -137, -159, -228, -283, -324, -354, --293, -13, 164, 287, 267, 367, 316, 282, 245, 258, 198, 233, 147, 189, 134, 115, 50, 24, -11, -31, -110, -186, -201, -243, -253, --267, -278, -291, -299, -305, -351, -398, -459, -355, -261, -193, -61, -26, 3, 178, 24, 98, 99, 65, 92, 33, 38, 75, 17, -15, --13, 22, 5, -17, -29, 55, -54, -63, -77, -98, -114, -136, -160, -172, -183, -186, -185, -173, -176, -141, -115, -85, -52, -80, -103, -40, 131, 180, -4, 125, 201, 202, 199, 175, 192, 196, 185, 111, -14, 174, 98, 7, -126, -104, -119, -125, -135, -143, -152, -148, --146, -147, -148, -150, -154, -137, -123, -110, -99, -129, 83, 75, 131, -94, -163, -59, -45, -152, -113, -120, -114, -73, -100, -99, -86, --154, -63, -74, -143, -88, 136, 81, 83, 81, 80, 73, 57, 58, 60, 61, 71, 73, 69, 67, 67, 66, 77, 104, 73, -110, -78, 18, -20, 8, 15, 63, 36, -24, 19, 37, -3, -15, 9, -9, 51, -63, 96, 123, 84, 89, 86, 73, 31, 28, 27, -27, 61, 63, 41, 29, 27, 41, 58, 143, 77, -36, 33, 80, -6, -12, 43, 7, 89, 10, 106, 2, 22, -20, 26, 41, -64, 21, 117, 163, 99, 94, 84, 46, -42, -32, -25, -9, 39, 48, 24, -11, 10, 55, 78, 180, 98, 47, 171, 249, 45, --9, 80, 78, 93, 181, 67, 34, 66, 91, 115, 54, 184, 108, 205, 209, 100, 91, 70, 17, -114, -131, -104, -71, 14, 3, --48, -107, -110, -16, 21, 207, -72, -282, -265, -257, -21, 149, 181, 124, 25, -35, 27, 56, 49, 111, 128, 84, 110, 1, 42, -133, 115, 217, 89, 109, 165, 331, 312, 37, 171, 148, 21, 48, 195, 478, 263, 32, 186, 1, 13, 55, -46, -54, -46, 22, -54, 61, 27, 22, 62, 51, 73, 70, 95, 49, 55, 96, 25, -8, 17, 20, -5, 56, 80, 36, 50, 17, -26, -187, -263, --231, -186, -92, -51, -73, -39, -100, -107, -150, 8, -47, -30, -2, 33, 53, 20, 34, 89, 32, 36, -12, 55, 191, 140, 73, -107, 89, 35, 41, 79, 152, 254, 255, 118, -40, -117, -180, -105, -76, -90, -83, -115, -128, -106, -40, 72, 15, 45, 40, 14, -17, 47, 61, 68, 80, 112, 42, 56, 137, 109, 77, 75, 54, -33, -59, -94, -157, -213, -206, -121, -164, -163, -197, -151, -377, --614, -567, -378, -257, -298, -257, -167, -182, -127, -86, -3, 34, 43, 33, 34, 76, 24, -26, 46, 89, 61, 49, -25, -67, -115, --95, -108, -176, -36, -67, -191, -297, -357, -349, -389, -293, -252, -121, -51, 3, 82, 138, 134, 119, 105, 94, 96, 83, 78, 68, -43, 40, -6, -10, -2, 55, 60, 51, -44, -80, -111, -82, -67, -79, -59, -6, 88, 18, -82, -183, -299, 32, 90, 81, 135, -184, 187, 180, 191, 169, 182, 146, 165, 128, 117, 70, 39, -5, -36, -103, -67, -58, -124, -147, -168, -180, -205, -204, -216, -220, --256, -305, -357, -307, -244, -177, -73, -21, -12, -21, 11, -7, 3, 29, 38, 36, 9, -36, -32, -25, -51, -57, -38, -47, -26, --57, -23, -43, -61, -76, -98, -121, -145, -130, -123, -118, -115, -102, -104, -72, -60, -51, -43, -50, -32, -126, -146, -78, -99, -137, --90, -102, -106, -95, -110, -118, -117, -165, -120, -114, -165, -130, -46, -70, -74, -82, -88, -93, -103, -98, -97, -95, -93, -93, -95, --88, -79, -65, -58, -87, 105, 97, 69, 230, 225, 68, 200, 214, 101, 104, 100, 71, 83, 77, 53, 213, 210, 44, 215, 233, -86, 102, 104, 100, 101, 98, 92, 90, 89, 85, 103, 109, 105, 121, 120, 98, 105, 93, 140, 204, 155, 201, 126, 104, 114, -112, 158, 187, 172, 131, 132, 119, 114, 177, 144, 185, 177, 122, 147, 127, 125, 107, 85, 74, 77, 81, 130, 153, 144, 184, -168, 105, 121, 90, 124, 227, 166, 198, 95, 78, 98, 124, 83, 155, 80, 116, 68, 113, 110, 129, 158, 222, 208, 137, 165, -144, 150, 121, 90, 69, 75, 73, 154, 201, 172, 261, 236, 110, 160, 70, 144, 252, 237, 252, 88, -11, 42, 57, 98, 114, -66, 36, 13, 76, 76, 148, 156, 259, 264, 192, 233, 204, 197, 147, 61, 14, 28, 50, 210, 272, 245, 358, 271, 63, 125, -189, 197, 158, -14, -137, 62, 179, 223, 173, 64, -31, 23, 50, 80, 135, 118, 134, 107, 178, 188, 65, 50, -7, 34, 24, --33, 149, 140, -80, 59, 132, 210, 229, 318, 489, 345, -259, 22, 268, 180, 125, 51, -41, -48, 12, 66, 76, 32, 26, 46, -51, 105, 153, 125, 142, 125, 178, 243, 195, 138, 104, 113, 159, 135, -19, 81, 104, 50, 75, -15, -197, -196, -27, -10, -16, --56, 11, -77, -92, 33, -10, -32, 9, 29, 42, 24, 57, 97, 82, 55, 117, 88, 98, 136, 55, 140, 167, 154, 146, 117, -79, 135, 283, 496, 477, 417, 306, 75, 216, -51, -12, -14, -75, -68, -43, 70, 22, 46, 55, 22, 23, 69, 73, 108, 117, -118, 144, 74, 116, 175, 169, 206, 183, 82, 149, 149, 84, 43, 9, -82, 250, 420, 479, 397, 217, 9, -237, -231, -190, -209, --191, -100, -101, -96, -56, -15, 26, 71, 49, 49, 66, 91, 133, 76, 99, 101, 53, 32, 51, 114, 135, 169, 203, 208, 168, -47, 74, 91, 76, 206, -218, -105, -89, -5, 26, 121, 108, 84, 51, 41, 33, 95, 99, 86, 76, 83, 99, 26, -8, 2, -49, 78, 79, 72, 55, 15, -17, -70, -118, -136, -49, 145, 58, 0, -79, -166, -33, 64, 169, 171, 227, 203, 178, 173, 186, -166, 206, 134, 132, 94, 81, 47, 32, 24, 36, 9, -57, -89, -134, -150, -168, -189, -154, -121, -82, -107, -157, -210, -202, -177, --166, -74, -14, 21, 34, 13, 48, 41, 48, 62, 45, 59, 79, 63, 42, 50, 35, 2, 3, -39, -26, -112, -139, -138, -153, --167, -183, -205, -200, -196, -183, -163, -127, -99, -70, -50, -36, -19, -59, -60, 26, 34, -43, 23, 43, -6, -10, -15, -35, -28, --30, -39, 41, 10, -48, 13, -7, -116, -101, -112, -120, -127, -134, -143, -131, -123, -117, -110, -106, -98, -94, -86, -75, -66, -95, --54, -35, -56, -106, -26, 193, -127, -47, 129, 139, 143, 159, 162, 165, 172, -43, -120, 203, -19, -97, -50, -42, -58, -61, -62, --66, -75, -74, -74, -76, -75, -76, -78, -79, -70, -47, -48, -19, -83, 54, -41, -5, -15, -50, -32, -31, -43, -46, -47, -27, --59, -12, -13, -40, -9, 76, -53, -45, -83, -98, -98, -102, -121, -118, -121, -127, -119, -126, -133, -143, -119, -51, -49, 9, -56, --46, -27, 58, -14, -14, 1, 29, 56, 15, 42, 40, -30, -5, -14, 31, 29, 19, 9, -48, -87, -132, -132, -156, -199, -185, --184, -188, -189, -200, -207, -220, -155, -25, -20, 45, -14, 35, 70, 144, 10, -22, 41, 61, 95, 135, 88, 34, 15, 49, 46, -78, 101, 126, 91, -33, -132, -218, -223, -246, -304, -291, -270, -255, -243, -278, -292, -321, -237, -31, -9, -49, -114, -156, -196, -187, --17, 89, 154, 159, 58, -33, 9, 39, 75, 109, 87, 67, 2, -23, -80, -124, -43, 33, 17, 35, 75, 167, 95, -192, -181, --229, -257, -218, -89, 173, 31, -167, -200, 46, 109, -55, -3, -17, -68, 2, 49, 84, 38, 21, 50, 36, 62, 60, 84, 98, --7, -45, -126, -279, -183, -97, -20, 73, 71, -81, 12, -53, -257, -260, -259, -210, -202, -120, -82, -31, -26, 17, -56, -118, 18, --22, -29, 2, 15, 31, 29, 16, 38, 11, -26, -52, -36, 87, 100, 20, -59, -195, -331, -295, -187, -84, -25, -114, -337, -489, --525, -489, -217, -260, -98, -20, -48, -52, -91, -40, 43, 12, 39, 37, 10, 18, 40, 50, 74, 65, 76, 80, 26, 4, -39, --71, -81, -71, -87, -92, -146, -254, -242, -242, -239, -359, -465, -633, -397, -528, -368, -226, -310, -309, -239, -193, -161, -141, -126, -101, --47, 0, 48, 36, 41, 58, 29, 23, -23, 55, 81, 45, -7, -72, -150, -176, -221, -307, -212, -262, -429, -550, -596, -593, -551, --484, -456, -238, -212, -99, -17, 12, -28, -38, -24, -2, 61, 76, 68, 35, 9, 3, -2, 5, 26, 47, 22, -16, -74, -110, --125, -123, -97, -44, -128, -146, -125, -71, -117, -242, -386, -165, -108, -56, -38, 42, 43, 55, 74, 106, 111, 132, 92, 98, 61, -50, 17, 2, -22, -56, -78, -87, -100, -104, -120, -136, -155, -177, -209, -227, -260, -286, -334, -325, -309, -282, -214, -100, -88, 21, --50, -28, -15, -25, -14, -38, -63, -65, -88, -80, -89, -77, -79, -123, -111, -103, -124, -118, -142, -156, -173, -188, -203, -204, -211, --227, -240, -254, -273, -225, -191, -162, -136, -142, -139, -165, -116, 6, -169, -115, -7, -8, -4, 0, 5, 6, 12, -140, -184, -13, --145, -182, -142, -151, -159, -163, -168, -173, -180, -185, -191, -193, -197, -201, -213, -197, -186, -171, -160, -197, 186, 164, 204, 152, 25, --163, 191, 48, -132, -135, -135, -136, -147, -153, -169, 41, 176, -182, 34, 150, 205, 169, 186, 185, 187, 186, 180, 178, 179, 181, -188, 193, 195, 199, 192, 158, 178, 173, 217, -6, 187, 118, 72, 116, 97, 158, 179, 139, 188, 157, 130, 72, 90, 152, 141, -4, 219, 211, 227, 233, 240, 232, 209, 200, 201, 216, 237, 246, 243, 247, 220, 139, 176, 201, 186, 139, 133, 95, 63, 54, -72, 79, 113, 93, 149, 84, 79, 55, 96, 121, 123, 131, 192, 244, 251, 268, 283, 268, 232, 222, 229, 258, 283, 312, 311, -324, 271, 120, 203, 170, 166, 156, 209, 176, 72, 12, 21, 70, 103, 115, 83, 65, 16, 77, 101, 111, 168, 152, 232, 294, -315, 348, 370, 353, 264, 234, 242, 308, 376, 380, 368, 352, 241, 24, 125, 446, 223, 23, -77, -179, -14, 119, 172, 201, 110, --17, 17, 45, 97, 127, 125, 100, 123, 71, 126, 243, 201, 209, 151, 136, 107, 319, 330, 156, 201, 282, 441, 418, 451, 544, -473, -85, -136, 267, 309, 97, 96, 29, -50, 15, 67, 108, 48, 30, 62, 93, 141, 124, 105, 60, 102, 283, 320, 345, 259, -203, 167, 119, 83, -23, 145, 87, -214, -51, -35, -154, -87, 5, -12, -72, -40, 34, 11, -60, 53, 18, -4, 25, 36, 47, -39, 37, 86, 27, 56, 74, 85, 156, 127, 78, 227, 323, 372, 421, 401, 262, 379, 546, 700, 656, 537, 480, 128, 266, -45, -19, 90, -39, 7, -13, 50, 17, 34, 44, 24, 27, 59, 74, 99, 98, 103, 76, 77, 179, 239, 264, 238, 190, 115, 134, -84, -35, -13, 12, 68, 398, 600, 739, 438, 426, 106, -294, -250, -252, -208, -146, -93, -88, -59, -57, -34, 6, 79, 48, 49, -62, 99, 80, 69, 95, 86, 95, 90, 114, 166, 190, 201, 220, 210, 224, 236, 256, 268, 308, 377, -124, -190, -339, -178, -114, -3, 17, -50, -40, -34, -4, 61, 89, 81, 62, 57, 61, 29, 28, 25, 116, 153, 127, 136, 105, 81, 37, -9, -35, -64, -4, 181, 185, 151, 43, -71, -29, -41, -12, 24, 29, 37, 37, 62, 75, 102, 126, 104, 65, 62, 40, 33, 13, 9, 6, -19, 13, -13, -24, -41, -58, -81, -44, -13, 20, 36, 36, 34, -16, -43, -62, -48, -3, 22, -74, 18, 9, 8, 47, 51, -62, 62, 41, 59, 53, 48, 0, -19, -6, -39, -106, -85, -119, -125, -140, -156, -169, -189, -161, -140, -119, -96, -68, -35, -22, --10, -7, -2, -33, -14, -33, -90, -192, 2, -72, -163, -174, -181, -188, -198, -209, -214, -81, -13, -219, -102, -50, -51, -64, -67, --76, -80, -86, -96, -83, -75, -66, -56, -49, -39, -41, -39, -35, -30, -55, -85, -60, -135, 12, 157, 301, -56, 121, 271, 289, -292, 274, 301, 303, 291, 128, -31, 318, 148, 20, -127, -73, -92, -94, -93, -94, -94, -95, -96, -97, -103, -104, -104, -100, -91, --71, -75, -70, -109, 210, -53, 49, 39, -29, -10, -44, -24, 27, -5, -6, -23, 38, 19, 21, 4, 197, -79, -104, -112, -131, --129, -131, -131, -129, -129, -125, -137, -143, -139, -135, -112, -64, -65, -56, -82, 39, -5, 75, 16, 19, 7, 71, 38, 70, 22, -102, -22, 50, 5, 60, 44, 77, -19, -136, -125, -169, -159, -166, -163, -162, -168, -166, -202, -210, -203, -179, -130, -50, -32, -64, --42, 85, 37, 83, 6, -23, 2, 36, 84, 81, 104, 45, -30, 21, 8, 124, 50, 152, 21, -144, -163, -242, -234, -237, -242, --226, -212, -184, -216, -248, -238, -215, -147, -42, -6, -125, -39, 7, -111, -107, 8, 60, 123, 188, 106, -13, -3, 27, 111, 106, -62, 80, -36, 27, -59, -204, -102, -103, -33, -29, -23, -22, -128, -340, -354, -346, -236, -207, -131, 26, -17, -301, -399, 182, 236, --69, 46, 10, -59, -3, 49, 105, 50, 27, 40, 48, 87, 71, 72, 124, 2, -59, -88, -248, -146, -58, 43, 82, 54, -102, -51, -18, -291, -192, -150, -148, -183, -81, -98, -26, -50, 75, 24, -10, 36, 14, -19, 14, 6, 25, 36, 9, 1, 0, -57, --25, -60, -27, 41, -11, -145, -291, -359, -344, -258, -186, -174, -247, -337, -425, -415, -295, -125, -178, 22, 47, 10, -3, -46, -29, --14, -5, 18, 32, 6, 15, 33, 44, 77, 39, 32, 92, 8, -59, -79, -106, -97, -67, -27, -30, -83, -194, -138, -156, -210, --276, -346, -439, -266, -391, -134, 9, -205, -294, -183, -147, -124, -73, -87, -72, -60, -18, 53, 35, 37, 20, 46, 86, -23, 23, -76, 72, 61, 2, -88, -99, -152, -254, -233, -257, -329, -405, -428, -424, -366, -410, -364, -198, -205, -85, -57, -73, -106, -123, -96, --61, 11, 35, 44, 13, 7, 5, 31, 35, 42, 26, -4, -32, -50, -69, -78, -100, -86, -33, -98, -193, -335, -220, -193, -260, --316, -244, -195, -98, -116, -39, -45, -27, -15, 49, 44, 109, 36, 74, 37, 38, 3, -3, -22, -26, -86, -94, -55, -36, -48, --66, -82, -107, -136, -159, -171, -158, -168, -188, -219, -238, -223, -119, -100, 54, -61, -6, 3, -25, -7, -47, -55, -24, -59, -62, --55, -40, -56, -95, -100, -67, -116, -108, -132, -145, -158, -166, -174, -189, -205, -228, -247, -277, -300, -264, -223, -187, -152, -155, -166, --107, -32, 48, -131, -33, 55, 60, 64, 54, 69, 74, 75, -43, -131, 45, -54, -124, -157, -152, -160, -162, -165, -170, -173, -182, --189, -194, -200, -204, -219, -200, -191, -181, -173, -200, 140, 124, 185, -5, -130, -181, 58, -100, -185, -188, -183, -159, -178, -180, -183, --106, 35, -183, -110, -6, 177, 124, 138, 141, 143, 142, 136, 135, 136, 143, 139, 139, 144, 136, 129, 111, 131, 137, 133, -136, -107, 9, 1, 58, 35, 109, 99, 32, 104, 101, 54, 7, 32, 55, 74, -98, 126, 156, 149, 172, 178, 179, 162, 158, 157, -176, 167, 159, 159, 128, 110, 77, 113, 183, 122, -6, 36, -1, 8, 13, 30, 24, 103, 23, 156, 52, 50, -5, 42, 75, -53, 10, 84, 181, 161, 196, 205, 203, 166, 168, 170, 216, 186, 185, 202, 139, 106, 54, 124, 152, 77, 1, 99, 92, 35, -21, 12, 65, 88, 107, 104, 83, 17, 59, 97, 81, 133, 34, 104, 195, 169, 231, 252, 253, 189, 185, 199, 284, 248, 197, -195, 67, 7, -43, 44, 422, 115, -151, -187, -229, -77, 54, 94, 194, 138, 10, 7, 37, 111, 99, 101, 60, 79, -41, 16, -230, 204, 275, 164, 174, 218, 315, 275, 128, 134, 186, 317, 298, 320, 381, 354, 7, -269, 170, 319, 32, 92, 59, -32, 18, -58, 120, 68, 42, 68, 110, 139, 60, 71, 11, 57, 212, 194, 242, 197, 162, 113, 68, 46, -23, 159, 60, -281, -168, -115, --101, -41, 27, -71, -130, -64, -4, 62, 0, 49, 33, 20, 31, 33, 47, 44, 8, 36, -40, 8, -17, 21, 124, 74, 71, -135, 192, 229, 326, 361, 245, 387, 436, 388, 310, 221, 275, 94, 120, 30, 55, 99, -11, 28, -3, -3, -1, 13, 27, 19, -23, 35, 59, 68, 43, 55, 0, 50, 142, 158, 178, 135, 89, 45, 26, -51, -193, -125, -74, 62, 162, 272, 397, 146, 150, --113, -323, -270, -310, -240, -157, -109, -83, -37, -49, -42, -9, 56, 35, 35, 27, 60, 11, 48, 55, 46, 115, 79, 70, 55, -46, 28, 14, 21, 54, 140, 101, 80, 133, 125, -121, -251, -371, -240, -147, -93, -67, -122, -100, -84, -33, -6, 28, 56, 33, -24, 18, 37, 55, 44, 107, 124, 122, 84, 56, 28, 12, 5, 3, 8, -1, -4, 23, 21, -19, -106, -94, -162, -178, -133, --140, -104, -73, -31, -16, 34, 39, 66, 28, 51, 13, 12, -19, -29, -58, -14, 47, 41, 70, 49, 33, 10, 17, 17, 15, -39, 68, 99, 38, -19, -54, -92, -34, -26, -113, -7, -33, -27, 13, 17, 34, 21, -19, 12, 24, 15, -29, -25, -14, -17, --98, -21, -46, -60, -69, -84, -91, -102, -82, -70, -64, -62, -68, -65, -60, -49, -45, -41, -30, -6, -103, -168, -206, -57, -151, --197, -207, -210, -203, -221, -232, -233, -159, -61, -235, -166, -94, -5, -32, -29, -34, -34, -35, -40, -38, -37, -35, -31, -28, -28, --27, -28, -27, -26, -30, -6, 2, -60, 139, 221, 188, 83, 199, 206, 219, 218, 186, 215, 213, 188, 203, 102, 195, 207, 141, --53, -5, -12, -11, -10, -9, -6, -10, -11, -8, -13, -12, -10, -5, -3, -7, -4, -19, -11, 210, 21, 107, 87, 40, 47, -22, 60, 114, 92, 68, 61, 83, 64, 102, 58, 189, 10, -28, -7, -15, -14, -19, -15, -21, -16, 2, -9, -7, 0, 9, -8, -6, 7, -18, -2, 124, 57, 91, 58, 59, 42, 98, 50, 116, 58, 138, 30, 90, 51, 90, 76, 122, 32, -55, -12, --20, -10, -8, 7, -12, -19, 8, -23, -15, -3, 30, 25, -21, 27, -66, -3, 105, 55, 72, 35, 2, -9, 29, 71, 43, -110, 69, -32, 21, 22, 152, 48, 135, 24, -69, -12, -25, -14, -23, -21, -32, -13, 52, 23, 17, 31, 55, 33, -48, 22, -23, 142, 151, -22, -101, 17, 62, 89, 197, 153, 27, -1, 26, 132, 97, 55, 87, 0, 82, 50, -63, -21, -72, 9, 15, -21, -54, -161, -269, -245, -157, 39, 69, 83, 92, 88, -268, -415, 245, 305, -9, 101, 42, -11, 6, 47, 114, 71, 50, 43, -79, 119, 80, 65, 113, 60, 45, 88, 38, 40, 61, 107, 99, 67, -49, 121, 84, -114, -38, -30, -79, -89, 36, -91, -60, --87, 54, 64, 61, 32, 43, 11, 28, 16, 30, 43, 12, -12, -13, -40, 23, -28, -57, 16, 19, -71, -129, -130, -84, -43, --73, -36, -36, 12, 27, 53, 155, 88, 75, 121, 104, 65, 12, 0, -18, -41, -11, 4, 27, 15, 20, 32, 46, 71, 30, -16, 73, 25, -4, 21, 28, 21, 20, 48, 50, 14, -61, 4, -9, -79, 26, 83, 127, 117, -17, 36, 19, -143, -261, -188, --150, -89, -29, -35, -24, -46, -17, 43, 31, 31, -6, 52, 108, 25, 4, 37, 65, 71, 61, 33, 16, 7, -5, -80, -83, --34, -38, -30, -39, 29, -190, -148, -128, -115, -30, -50, -98, -123, -140, -120, -88, -43, -14, 30, 14, 32, 37, 61, 52, 49, -23, 22, 49, 37, 32, 0, -29, -58, -76, -78, -141, -256, -258, -218, -170, -158, -232, -218, -123, -144, -100, -92, -66, -48, 6, -4, 72, 18, 56, 43, 35, 9, 0, 0, 20, -11, -11, 29, 52, 34, 15, -1, -10, -14, -23, -20, -7, 5, -33, -89, --147, -177, -86, -70, 17, -45, 5, 5, -11, 7, -17, -3, 33, 18, 12, 33, 28, 2, -9, -35, -15, -74, -77, -83, -90, --93, -93, -93, -110, -124, -136, -148, -163, -174, -165, -141, -121, -97, -81, -94, -10, 28, 4, -24, 32, 31, 38, 41, 26, 40, -42, 39, 47, -8, 18, 28, -15, -91, -77, -80, -82, -81, -82, -82, -87, -89, -92, -95, -97, -103, -94, -92, -90, -88, -82, -16, 18, 46, -106, -125, -9, -77, -115, -46, -43, -36, -10, -17, -15, -11, -116, -89, 4, -111, -104, 37, 13, 13, 16, 15, -14, 9, 8, 9, 19, 7, 4, 7, -5, -5, 2, 12, 27, -17, -99, -13, -50, -31, -13, -22, 14, -7, -44, 1, 19, --24, -25, -16, -35, -6, -60, -18, 16, -8, 8, 9, 9, -1, -4, -1, 25, -3, -19, -19, -60, -58, -27, -6, 65, 4, --86, -41, -31, -17, -4, -1, 6, 70, -2, 108, 49, 14, -20, -11, 18, -5, -52, -27, 17, -12, 5, 2, -1, -31, -28, --28, 32, -33, -55, -37, -119, -106, -47, -8, 57, -26, -86, -8, 33, 7, 22, 14, 52, 68, 82, 119, 86, 17, 34, 60, -66, 64, -21, -24, -6, -58, -35, -33, -43, -76, -67, -30, 74, -30, -95, -96, -245, -226, -102, -39, 140, 10, -145, -170, -203, --68, 21, 33, 171, 155, 49, 5, 30, 116, 69, 55, 30, 12, -69, -54, 70, 91, 173, 111, 147, 250, 139, 32, -71, -84, --61, -2, 50, 81, 109, 67, 21, -366, 2, 195, -50, 60, 68, 13, 15, 31, 114, 85, 60, 61, 98, 104, 10, 36, 16, -9, 34, -15, -5, 26, 52, 44, 34, 26, -12, 123, 33, -212, -213, -178, -74, -2, 45, -104, -108, -56, -9, 77, 34, 12, -32, 32, 29, 25, 39, 51, -9, -26, -69, -47, -84, -56, 30, 20, 67, -38, -89, -95, -10, 78, 82, 168, 73, -159, -221, --220, -94, 22, -65, 76, 72, 45, -12, -4, -11, -35, -6, 7, 14, 19, 24, 16, 34, 34, 3, 7, -22, 26, 52, 19, -23, -43, -63, -41, -92, -152, -230, -163, -123, -31, -146, -191, -207, -177, -277, -290, -239, -257, -324, -265, -190, -135, -83, -38, -38, --38, -18, 13, 17, 22, 5, 2, -30, 3, -5, -1, 59, 34, -4, -88, -121, -161, -199, -209, -204, -128, -194, -223, -201, -265, --196, -272, -243, -201, -104, -126, -122, -154, -139, -120, -79, -76, -41, 20, 7, 3, -7, 37, 57, 56, 51, 44, 68, 0, -25, --54, -47, -36, -29, -40, -91, -177, -199, -204, -173, -202, -198, -255, -271, -242, -227, -180, -125, -75, -53, -17, -10, 22, 23, 43, -12, 3, -21, -22, -46, -4, 56, 62, 101, 78, 65, 46, 18, -15, -51, -47, -34, -18, -56, -105, -143, -187, -86, -94, -87, --53, -63, -50, -38, -31, -24, -39, -58, -41, -19, -19, -34, -25, -38, -24, -67, -18, -16, -29, -30, -34, -32, -29, -31, -36, --49, -68, -95, -119, -117, -110, -103, -98, -47, -38, -119, -134, -83, -95, -125, -91, -90, -85, -71, -78, -81, -74, -121, -82, -88, --123, -96, -5, -23, -19, -18, -16, -15, -14, -22, -28, -32, -37, -40, -49, -45, -46, -45, -47, -28, 97, 84, 85, 164, 123, --34, 163, 131, 7, 10, 9, -9, 1, -4, -26, 128, 159, -42, 117, 160, 83, 86, 95, 98, 98, 97, 96, 92, 93, 104, -101, 103, 106, 106, 100, 76, 89, 71, 117, 72, 104, 107, 87, 94, 80, 97, 127, 137, 156, 126, 115, 81, 75, 122, 92, -65, 115, 94, 123, 129, 126, 114, 105, 94, 104, 145, 138, 144, 147, 143, 119, 59, 88, 79, 115, 137, 99, 70, 73, 76, -65, 89, 79, 115, 120, 126, 83, 81, 72, 78, 81, 105, 93, 98, 133, 158, 158, 151, 141, 115, 121, 192, 173, 191, 199, -198, 148, 22, 91, 31, 78, 83, 87, 74, 62, 35, 4, 43, 65, 44, 113, 97, 8, 42, 57, 114, 65, 73, 63, 97, -169, 215, 212, 177, 139, 108, 148, 274, 255, 265, 263, 225, 125, -48, 49, 213, 256, 186, 46, -114, 3, 67, 64, 182, 181, -77, 16, 32, 127, 77, 57, 73, 70, 100, 138, 155, 125, 87, 108, 121, 151, 32, -44, -50, 6, 132, 294, 358, 333, 223, -205, -65, -298, 115, 213, 74, 112, 70, 50, 20, 34, 113, 94, 75, 52, 107, 130, 74, 51, 51, 91, 155, 229, 311, 242, -191, 158, 82, 51, 29, 169, 138, -31, 43, 30, -54, 48, 131, -24, -53, -48, 38, 96, 84, 17, 50, 36, 38, 31, 41, -56, 17, -9, -17, -3, 35, 14, -13, 20, 78, 53, 107, 204, 245, 234, 152, 174, 232, 338, 401, 417, 463, 238, 271, 119, -92, 78, -21, 15, -15, -30, 6, 13, 22, 32, 33, 34, 39, 48, 31, 14, 32, 55, 98, 142, 168, 126, 90, 73, 71, -60, 48, 81, 98, 107, 326, 451, 558, 402, 265, 107, -126, -156, -214, -213, -167, -85, -36, -7, 2, -19, -11, 13, 19, 25, -4, 42, 61, 57, 10, 9, 42, 68, 96, 120, 121, 123, 168, 55, 63, 182, 254, 296, 307, 298, -10, -12, -124, -61, -26, --58, -106, -129, -127, -118, -98, -86, -50, 10, 24, 51, 57, 59, 51, 44, 39, 64, 102, 110, 98, 58, 30, -19, -73, -76, --68, -29, -122, -127, -77, -37, -149, -175, -142, -137, -139, -110, -76, -43, -24, -19, 18, 9, 29, 42, 27, 19, 12, 32, 62, -80, 79, 86, 91, 78, 68, 57, 62, 69, 67, 76, 73, 82, 32, -17, -79, -115, -46, -42, -70, -30, -15, -16, -5, 5, -10, 31, 46, 59, 57, 79, 51, 32, 43, 12, -14, -27, -39, -31, -31, -26, -21, -17, -21, -22, -17, -13, -7, 2, -15, --20, -27, -31, 3, -1, 41, 18, -72, 52, 31, -40, -36, -35, -43, -39, -40, -43, 58, 74, -54, 40, 54, 6, 13, 14, -14, 15, 15, 15, 18, 20, 21, 23, 24, 29, 23, 19, 13, 9, 40, -81, -64, -88, -79, 10, 178, -107, -6, 141, 151, -156, 161, 175, 178, 178, -3, -102, 192, 7, -77, -94, -70, -84, -83, -87, -90, -95, -95, -93, -81, -93, -97, -95, -103, -98, --78, -80, -69, -107, 48, -78, -28, -4, -39, -35, -48, -53, -35, -37, -20, -42, -8, -24, -57, -42, 58, -102, -91, -110, -115, --126, -135, -142, -142, -130, -96, -126, -137, -136, -165, -151, -92, -88, -50, -57, -44, -43, -1, 0, 15, -1, 32, 42, 31, 57, -81, 5, 11, -29, -16, -17, -23, -70, -110, -121, -137, -156, -171, -194, -192, -186, -117, -182, -200, -187, -238, -203, -99, -91, -48, --58, -56, -46, 12, 14, 26, 17, 42, 57, 62, 130, 92, 22, 19, 13, 51, -2, 3, -74, -140, -174, -209, -244, -285, -299, --282, -219, -104, -209, -245, -246, -342, -291, -107, -73, -136, -6, 21, -37, -113, -32, 10, 24, 140, 158, 95, 16, 24, 108, 48, -21, 33, -15, 3, -39, -86, -28, 10, 39, 78, 174, -84, -230, -278, -262, -233, -232, -91, -61, -106, -152, -40, -374, -166, -3, --21, 35, 52, 59, 18, 17, 101, 102, 81, 46, 72, 66, 5, 14, 40, -9, -93, -120, -143, -64, -11, 27, 18, 15, 10, -71, 12, -124, -146, -134, -69, 23, 71, -41, 3, 4, 40, 83, 65, -10, 26, 29, 25, 17, 30, 58, -6, -59, -43, -70, --87, -88, -69, -24, 31, -157, -263, -289, -258, -180, -72, -135, -294, -486, -521, -429, -269, -3, -143, 77, 46, -26, -34, -49, -34, --50, 6, 19, 12, 29, 33, 11, 8, 9, -9, -26, 2, 14, -26, -69, -88, -132, -126, -95, -127, -145, -129, -102, -80, -42, --226, -361, -485, -274, -459, -248, -88, -200, -244, -227, -188, -140, -77, -48, -31, -29, -24, -28, 1, 13, -4, -22, -14, -20, -28, --7, 3, 6, -33, -121, -156, -216, -273, -303, -332, -324, -345, -338, -333, -412, -247, -228, -89, -127, -65, -134, -163, -163, -158, -138, --117, -118, -89, -25, -7, 4, -3, 33, 41, 48, -6, -35, -27, -46, -64, -87, -85, -68, -42, -85, -159, -279, -275, -287, -285, --251, -239, -240, -225, -222, -185, -154, -105, -71, -47, -54, -34, -33, 19, 20, 16, 2, 5, 9, 9, 6, 17, 37, 53, 49, -48, 52, 3, -51, -107, -133, -146, -163, -176, -197, -222, -230, -131, -145, -43, -99, -74, -59, -78, -65, -78, -81, -63, -73, -60, --47, -28, -22, -49, -34, -20, -16, 3, -6, -4, 1, 5, 15, -9, -28, -52, -77, -110, -144, -145, -143, -138, -137, -75, -89, --82, -37, 55, -94, -37, 47, 58, 68, 74, 85, 91, 98, -22, -66, 77, -18, -54, -28, -29, -28, -25, -24, -24, -20, -32, --42, -51, -61, -69, -82, -76, -77, -77, -80, -54, 126, 107, 163, 73, -41, -174, 117, -14, -149, -152, -151, -143, -153, -156, -164, --22, 93, -190, -37, 64, 150, 114, 129, 131, 127, 124, 115, 115, 118, 135, 131, 133, 138, 130, 121, 96, 114, 109, 153, -84, -113, 43, 42, 87, 59, 111, 116, 80, 132, 117, 96, 32, 38, 60, 68, -68, 130, 146, 157, 169, 156, 140, 120, 113, 128, -177, 170, 172, 170, 145, 116, 64, 98, 135, 165, 71, 82, 20, 52, 59, 54, 53, 95, 72, 154, 86, 96, 31, 44, 27, -44, 35, 91, 176, 177, 208, 186, 164, 119, 110, 130, 227, 207, 221, 232, 178, 122, 26, 89, 108, 115, 14, 80, 64, 81, -67, 23, 63, 68, 74, 125, 122, 59, 57, 68, 30, 64, 2, 71, 189, 213, 269, 230, 172, 106, 92, 158, 309, 277, 275, -263, 148, 44, -59, 28, 295, 252, 127, 57, -128, -54, 34, 50, 141, 175, 126, 37, 32, 101, 52, 59, 59, 117, 72, 132, -258, 202, 225, 176, 193, 241, 97, 34, 60, 148, 262, 308, 424, 400, 237, 211, 111, -189, -152, 1, 164, 93, 71, 88, 39, -33, 103, 116, 98, 56, 105, 103, 47, 28, -14, 77, 172, 223, 367, 292, 216, 129, 39, 32, 94, 142, 95, -43, 24, 25, --45, 128, 192, 76, 16, 43, 34, 100, 68, 5, 41, 50, 37, 40, 46, 63, 17, -4, -15, 17, 2, 26, 31, 12, 81, -127, 227, 308, 360, 325, 258, 224, 264, 352, 371, 392, 436, 255, 240, 52, 23, 32, -56, 3, -23, -23, 23, 31, 21, 51, -46, 25, 20, 14, 26, 11, -14, 65, 152, 184, 206, 145, 90, 28, 19, 17, 65, 51, 111, 255, 384, 475, 560, 349, 267, -26, -252, -185, -162, -210, -163, -99, -68, -13, -9, -9, -12, -23, 5, 15, 12, 21, -3, 57, 17, -9, 20, 36, 72, 111, -102, 98, 139, 63, 67, 149, 243, 301, 345, 278, 36, -22, -161, -88, -98, -120, -136, -147, -120, -111, -93, -106, -77, -23, 20, -44, 48, 42, 43, 33, 50, 71, 80, 108, 95, 64, 34, 0, -40, -26, 14, 81, 26, -13, -37, -12, -68, -114, -142, -108, --131, -97, -68, -34, -53, -50, -59, -21, -14, 17, 8, 23, 29, 39, 46, 84, 94, 76, 70, 71, 78, 90, 83, 74, 57, -54, 39, 37, -1, -27, -58, -75, -51, -64, -151, -55, -71, -67, -37, -32, -8, 6, -6, 23, 29, 38, 14, 20, 45, 37, --10, 47, 32, 38, 40, 43, 44, 45, 47, 55, 64, 71, 79, 88, 59, 31, 6, -22, 21, 25, -1, -56, -125, 28, -40, --106, -107, -107, -102, -110, -114, -115, -16, 53, -110, -16, 39, 65, 54, 59, 58, 59, 59, 59, 62, 63, 64, 65, 65, 70, -58, 51, 42, 35, 68, -83, -65, -112, 29, 140, 214, -28, 114, 206, 219, 220, 202, 227, 228, 219, 115, -16, 216, 121, 27, --116, -68, -83, -84, -91, -96, -100, -99, -96, -84, -92, -93, -91, -94, -90, -77, -81, -81, -77, 156, -50, 35, 49, -6, -4, --36, -17, 35, 7, 4, 5, 30, 1, -13, -22, 134, -75, -89, -89, -109, -132, -150, -154, -151, -134, -98, -115, -116, -112, -122, --113, -80, -79, -78, -17, 65, 20, 51, 44, 53, 18, 73, 36, 86, 41, 114, 30, 52, -12, -17, 5, 44, -32, -105, -91, --123, -160, -187, -200, -200, -184, -121, -158, -157, -144, -159, -139, -89, -80, -83, 0, 34, -9, 27, 60, 47, 16, 41, 60, 55, -138, 107, 35, 20, -16, 31, -31, 52, -40, -117, -107, -169, -239, -304, -307, -286, -210, -109, -166, -166, -159, -193, -173, -83, -52, --181, 108, 240, 124, -22, -17, 1, 43, 110, 152, 145, 34, 18, 95, 37, 16, 67, 19, 103, 40, -107, -55, -72, 16, 33, -56, -219, -354, -365, -278, -205, -218, -39, -26, -147, -163, -103, -309, -275, -161, 106, 59, 40, 84, 30, 24, 87, 116, 99, 32, -47, 40, 28, 10, 56, 16, -89, -63, -73, -14, 12, 30, 24, 30, 55, 25, -8, -53, -11, -5, -48, 41, 151, 98, 138, -88, 95, 81, 79, -12, 32, 34, 22, 18, 28, 59, 11, -49, 3, -48, -32, -57, -109, -40, 2, -131, -205, -229, -229, -215, --107, -274, -377, -364, -359, -232, -102, 80, -73, 37, -2, -62, -46, -52, -40, -49, 16, 33, 22, 45, 40, 8, -6, 0, 2, --26, 33, 24, -22, -34, -54, -74, -68, -62, -80, -59, 47, 11, 35, 69, -33, -132, -253, -96, -263, -70, 22, -115, -133, -152, --145, -109, -59, -49, -30, -29, -28, -47, -4, 7, -10, -9, 32, -10, -27, -7, -25, -6, -17, -46, -72, -102, -138, -199, -246, --300, -242, -188, -184, -205, -181, -109, -1, -70, -76, -138, -181, -166, -162, -138, -127, -120, -103, -58, -15, 16, 25, 37, 29, 32, --26, -52, -57, -28, -23, -33, -59, -68, -67, -77, -121, -230, -214, -219, -227, -177, -194, -159, -112, -124, -81, -78, -60, -51, -41, --84, -62, -82, -9, -17, 12, 11, 44, 39, 51, 13, -15, 5, -2, 12, 22, 46, -4, -48, -94, -129, -156, -184, -181, -184, --197, -182, -137, -152, -43, -126, -84, -76, -102, -85, -103, -86, -44, -64, -64, -43, -9, -8, -19, -12, 43, 12, 27, 25, 25, -30, 30, 36, 5, -15, -36, -55, -76, -99, -109, -117, -122, -129, -82, -107, -32, 27, 78, -58, 26, 87, 99, 107, 103, 121, -130, 132, 53, -21, 122, 60, 5, -42, -29, -32, -29, -30, -30, -26, -37, -44, -53, -63, -71, -80, -78, -79, -82, -85, -63, -60, 52, 114, -50, -133, -135, -4, -112, -146, -147, -143, -119, -134, -134, -128, -121, -32, -147, -128, -60, 95, 57, 65, 65, 57, -50, 39, 43, 48, 64, 58, 58, 64, 49, 43, 37, 50, 62, 77, -133, 45, -31, -8, 32, 2, 55, 40, -6, 44, 51, -27, -22, -18, -34, 2, -112, 48, 87, 72, 78, 56, 40, 20, 25, 41, 78, 67, 62, 63, 19, 6, 6, 28, 97, 122, --8, 27, -20, 21, 32, 16, 21, 84, 25, 130, 49, 66, -18, -12, -33, -13, -39, 29, 121, 91, 97, 53, 21, -31, -14, -12, 93, 69, 67, 92, -6, -27, -19, 12, 97, 97, -35, 36, 36, 81, 82, 32, 72, 70, 97, 139, 133, 87, 50, 39, --42, 24, -44, 29, 136, 98, 104, 31, -31, -80, -53, 24, 140, 87, 63, 68, -98, -136, -74, -28, 188, 158, 81, 63, -93, --97, -21, 32, 88, 146, 173, 50, 22, 74, 27, 51, 51, 106, 29, 53, 181, 157, 224, 162, 173, 200, 46, -25, -29, 81, -153, 79, 234, 229, 79, 74, 138, -154, -400, -212, 195, 79, 66, 86, 48, 32, 84, 124, 107, 50, 71, 50, 12, 10, -33, -32, 72, 74, 185, 175, 128, 43, -2, 19, 119, 45, -31, -130, -44, -5, -18, 118, 211, 181, 131, 143, 55, 92, 53, 0, -37, 57, 27, 37, 43, 61, 13, -11, -15, 5, -42, -3, 30, -3, 44, 70, 132, 168, 197, 175, 188, 95, 65, 60, 46, -90, 152, 174, 40, -42, -55, -35, -60, -9, -20, -18, 24, 39, 24, 55, 44, 3, -2, -12, 8, 2, -32, 53, 115, 114, -116, 64, 25, -35, -80, -71, 28, -25, 57, 261, 208, 187, 157, 60, 17, -126, -239, -173, -138, -170, -129, -100, -85, -36, -41, --26, -26, -49, -5, 5, 9, -4, -44, 21, 10, -16, 1, -3, 5, 15, 2, -12, -22, -46, -64, -74, -10, 35, 81, 15, --26, -95, -152, -129, -169, -180, -171, -178, -137, -116, -93, -110, -90, -57, -9, 11, 26, 23, 32, 25, 37, 37, 25, 30, 30, -28, 6, -4, -21, -1, 27, 47, 32, -5, -31, -53, -52, -94, -144, -102, -114, -90, -76, -53, -86, -89, -126, -71, -61, -33, --17, 14, 40, 31, 9, 42, 61, 38, 33, 42, 53, 68, 40, 13, -16, -31, -52, -63, -75, -76, -74, -78, -80, -104, -173, --98, -125, -117, -92, -90, -63, -59, -76, -51, -35, -36, -38, -15, 6, 27, 4, 71, 62, 62, 62, 60, 56, 54, 55, 58, -58, 56, 54, 50, 26, -3, -30, -59, -13, -7, -76, -116, -115, -48, -105, -115, -116, -114, -101, -109, -111, -107, -87, -24, -93, --71, -21, 50, 32, 36, 35, 35, 36, 36, 34, 32, 30, 28, 25, 25, 15, 10, 4, -3, 22, -8, -5, -26, 114, 151, -82, 76, 139, 105, 116, 114, 90, 109, 106, 92, 134, 77, 70, 129, 104, -33, -1, -4, -8, -16, -20, -25, -21, -18, -9, --10, -8, -3, -6, -8, -13, -11, -21, 29, 137, 28, 73, 76, 49, 34, 25, 55, 94, 76, 56, 67, 49, 24, 39, 19, -101, 19, 0, 16, -7, -32, -52, -57, -50, -31, -3, -4, 3, 12, 4, -5, -19, -10, -22, 80, 142, 83, 67, 75, 78, -35, 91, 54, 110, 63, 113, 65, 61, 12, -3, 24, 76, 39, 8, 31, 1, -40, -71, -81, -74, -53, -6, -6, 10, 32, -17, -4, -37, -13, -42, 90, 106, 52, 41, 102, 75, 16, 52, 67, 59, 139, 124, 56, 28, -18, 2, -28, 59, 27, 23, -63, 9, -69, -133, -138, -112, -43, 28, 23, 45, 71, 34, -10, -50, -12, -22, 227, 356, 230, 29, -33, -19, 51, 78, 137, -193, 51, 10, 76, 31, 33, 87, 79, 152, 116, 16, 23, -25, 52, 38, -24, -195, -277, -270, -119, -8, -25, 142, 121, -71, --29, -114, -193, -313, -229, 219, 109, 52, 76, 40, 36, 69, 118, 107, 30, 40, 35, 51, 20, 47, 50, 7, 75, 122, 119, -88, 63, 30, 43, 108, -8, -40, -39, 97, 114, 6, 49, 219, 237, 235, 164, 122, 84, 89, 15, 51, 46, 24, 26, 30, -55, 28, -15, 28, -3, 27, -7, -74, -28, -16, -10, 20, 54, 18, -40, -9, -177, -167, 4, 96, 191, 224, 201, 64, -32, --59, -57, -36, -12, -23, -23, 19, 35, 32, 51, 37, 3, -7, -1, 10, -7, 41, 39, 27, 58, 58, 60, 46, 5, -4, -44, 177, 122, 156, 197, 265, 264, 213, 181, 87, 99, 21, -53, -71, -87, -82, -57, -37, -37, -34, -39, -36, -46, -5, 4, --2, 16, 53, 20, 6, 8, -15, 12, 31, 66, 69, 70, 67, -4, -41, -97, 13, 85, 89, 117, -34, 14, 5, -34, -107, --136, -176, -168, -153, -130, -120, -105, -93, -73, -24, 18, 55, 36, 20, 17, -9, -13, -21, 20, 39, 48, 11, -27, -59, -54, --44, -39, -62, -65, -48, -29, -91, -66, -31, -38, -19, -33, -45, -56, -63, -103, -93, -110, -61, -65, -13, 8, 60, 54, 72, -44, 6, 12, -6, 3, 7, 19, 0, -8, -17, -41, -71, -97, -94, -88, -95, -83, -89, -98, -79, -106, -85, -86, -95, -86, --86, -58, -22, -28, -33, -15, 4, -4, 10, 5, 52, 10, 7, 13, 11, 12, 10, 10, -5, -14, -18, -17, -12, -11, -27, --43, -58, -70, -47, -62, 9, 30, 0, -3, 33, 20, 28, 31, 23, 36, 41, 40, 63, 25, 47, 67, 41, -30, -15, -18, --19, -20, -21, -21, -21, -22, -25, -27, -30, -28, -33, -36, -40, -44, -27, -44, -35, -11, -106, -94, 19, -99, -94, -15, -6, --2, 15, 12, 14, 24, -100, -113, 18, -97, -113, -26, -33, -39, -43, -52, -58, -66, -59, -55, -46, -52, -54, -48, -64, -64, --48, -47, -30, -40, -55, -43, -65, -24, -23, -44, -20, -36, -52, -36, -19, -32, -45, -54, -90, -58, -52, -58, -25, -51, -65, --89, -100, -109, -91, -76, -60, -74, -84, -77, -121, -116, -67, -64, -6, 27, -38, -20, -32, 4, 17, -16, 18, 56, 10, 66, -36, 24, -35, -57, -64, -53, -65, -40, -6, -42, -77, -124, -154, -185, -148, -126, -85, -111, -126, -94, -192, -174, -73, -79, 7, -30, -39, -19, -3, 72, 83, 31, 68, 69, 93, 144, 126, 84, 23, -16, -68, -36, -48, -29, -1, -65, -135, -213, -259, -264, --197, -125, -74, -137, -170, -144, -295, -265, -82, -77, -22, 62, 110, 103, -26, -110, -80, 9, 40, 108, 204, 53, 5, 50, 11, -31, 44, 56, 20, -12, 18, 41, 91, 85, 81, 62, -90, -173, -209, -95, -67, -207, -37, -29, -157, -118, -4, -186, -485, -319, -151, 80, 66, 59, 42, 32, 58, 116, 106, 42, 33, 6, -1, 8, -2, -13, -62, -88, -64, 3, 13, -14, -18, 18, 115, --58, -133, -148, -67, -13, 28, 36, 190, 242, 239, 206, 85, 71, 56, 25, 45, 53, 20, 24, 29, 51, 14, -20, -10, -23, --67, -55, -20, -26, -18, -22, -31, -54, -71, -77, -8, -129, -221, -316, -256, -173, -129, 79, -164, -99, -115, -95, -33, -19, -17, --13, 12, 30, 22, 41, 28, -15, -18, -28, -21, -13, -16, 19, 12, -12, -20, -31, -42, -79, -114, -89, 0, -18, 40, 143, --13, -136, -272, -210, -252, -172, -100, -115, -116, -106, -78, -77, -70, -50, -63, -52, -47, -58, -18, -6, 9, -20, -40, -13, 9, -6, -2, -14, -37, -68, -83, -117, -177, -154, -185, -263, -252, -237, -213, -260, -110, -145, -87, -129, -183, -205, -197, -191, -158, -130, --107, -107, -96, -81, -46, -25, 7, 13, 22, 21, 8, -16, -38, -51, -45, -17, -20, -11, -2, -17, -31, -57, -43, -61, -64, --100, -74, -83, -117, -97, -82, -84, -88, -91, -108, -119, -148, -118, -98, -91, -45, -11, 33, 18, -4, 5, 14, 6, 7, 7, -6, 7, -25, -54, -80, -107, -131, -155, -141, -125, -106, -98, -94, -113, -115, -111, -127, -118, -116, -117, -103, -106, -107, -101, -85, --88, -69, -51, -52, -23, -6, 15, 20, 15, 14, 12, 9, 10, 4, -2, -13, -23, -35, -52, -57, -70, -80, -92, -59, -58, --104, -98, -36, -98, -97, -50, -47, -42, -30, -30, -26, -19, -87, -83, -10, -69, -65, -14, -22, -21, -21, -21, -21, -21, -27, --32, -37, -42, -47, -52, -54, -55, -55, -58, -50, 64, 53, 79, 101, 43, -96, 109, 54, -64, -58, -59, -70, -69, -74, -82, -43, 94, -114, 31, 87, 68, 63, 70, 65, 59, 55, 51, 56, 59, 66, 68, 71, 78, 69, 63, 47, 56, 46, 109, 15, -79, 46, 56, 75, 42, 74, 93, 91, 102, 80, 88, 28, 19, 45, 34, -9, 87, 87, 100, 84, 65, 51, 44, 59, 75, -91, 95, 102, 111, 91, 69, 31, 47, 52, 142, 123, 94, 29, 67, 70, 32, 74, 75, 87, 88, 72, 82, 26, 13, -3, -16, 46, 77, 118, 126, 106, 72, 47, 33, 56, 79, 111, 125, 140, 168, 120, 75, 9, 37, 24, 124, 85, 71, 26, 118, -99, 22, 68, 74, 72, 129, 129, 78, 29, -9, -34, -15, 12, 67, 148, 173, 141, 81, 38, 27, 73, 130, 170, 177, 190, -221, 137, 57, -29, 7, 162, 269, 318, 239, 25, -85, -66, 29, 42, 110, 213, 59, 3, 48, 23, 48, 72, 114, 124, 139, -161, 121, 86, 105, 71, -28, -86, -112, -89, 75, 177, 136, 259, 214, 5, 84, -87, -122, -324, -237, 224, 141, 84, 62, 44, -44, 52, 110, 109, 44, 45, 37, 57, 36, 19, 54, 92, 155, 242, 210, 146, 74, 22, 42, 144, -20, -56, -32, 116, 147, -66, 42, 249, 305, 268, 209, 96, 65, 76, 63, 69, 58, 28, 30, 29, 45, 38, 19, 23, 26, 30, 15, -6, -7, -5, -130, 238, 293, 265, 169, 83, 4, 82, 234, 448, 493, 393, 260, 115, -87, -117, -52, -20, 17, -10, 4, 10, 22, 27, 37, -21, -3, -7, -12, -1, 9, 18, 39, 74, 124, 150, 157, 119, 48, 57, 105, 185, 183, 221, 236, 401, 464, 493, 290, 296, -171, -46, -26, -28, -46, -31, -15, -23, -16, -34, -46, -45, -36, -17, -5, 18, 25, 29, 41, 39, 26, 18, 29, 61, 119, -133, 144, 155, 121, 122, 117, 202, 244, 267, 276, 75, 50, -64, -56, -149, -155, -169, -162, -136, -119, -104, -89, -77, -73, -35, -2, 49, 30, 25, 13, 28, 39, 32, 57, 69, 94, 65, 26, -17, -14, 27, 123, 80, 71, 82, 75, 8, 3, -4, 3, --7, -27, -57, -78, -97, -111, -121, -113, -109, -100, -51, -7, 41, 39, 52, 60, 40, 28, 12, 8, 2, -3, 8, 27, 44, -36, 17, 5, 0, 5, 2, 3, -30, -31, -105, -59, -73, -77, -61, -64, -43, -26, -19, -5, -7, -2, -10, -17, 7, -3, -1, -7, -21, -12, -13, -11, -11, -14, -9, -5, 5, 17, 36, 50, 36, 18, 2, -11, -10, -8, 8, -19, -91, 18, -13, --74, -76, -77, -80, -81, -81, -83, 4, 27, -67, 7, 27, -7, -2, -2, -4, -4, -5, -6, -1, 2, 4, 7, 8, 16, -7, 5, 1, -2, 2, -100, -83, -104, -62, 23, 139, -97, 4, 113, 129, 132, 128, 139, 141, 146, 0, -95, 144, 8, -68, --111, -83, -98, -104, -111, -114, -117, -109, -107, -104, -110, -111, -106, -117, -114, -91, -98, -91, -99, 64, -80, -44, -3, -35, -46, --54, -53, -28, -54, -44, -36, -28, -51, -78, -70, 42, -101, -96, -114, -143, -163, -169, -165, -138, -125, -126, -140, -148, -137, -165, --152, -96, -106, -88, -34, 0, -20, -16, 12, 24, -24, 42, 35, 34, 8, 40, 10, -17, -64, -59, -53, -32, -58, -95, -114, --172, -210, -228, -229, -184, -167, -165, -186, -202, -171, -231, -202, -91, -116, -83, -14, -1, -44, -36, 68, 82, 24, 62, 70, 73, -129, 106, 68, -5, -60, -53, -75, -17, -49, -97, -143, -252, -317, -342, -307, -215, -155, -163, -218, -243, -207, -289, -237, -67, -87, --168, 47, 215, 182, 52, -101, -124, -13, 9, 75, 202, 50, -7, 31, 8, 16, 38, 15, 51, -5, -95, -51, -53, 8, -14, --84, -217, -294, -319, -205, -186, -312, -172, -178, -294, -226, -180, -242, -427, -325, 67, 96, 83, 51, 32, 30, 36, 100, 101, 42, -11, -10, 15, 23, 42, -28, -122, -138, -181, -79, -41, -29, -14, 22, 106, -102, -150, -91, -30, 23, 82, -33, 171, 258, 300, -221, 89, 27, 54, 67, 61, 49, 16, 11, 14, 34, 23, -13, 1, -38, -58, -75, -65, -34, -44, -63, -110, -154, -194, -213, --182, -273, -355, -459, -256, -165, -226, 41, -235, -108, -145, -129, -6, -29, -21, -11, -6, 9, 14, 14, 3, -20, -28, -35, -39, --20, 14, -8, -61, -74, -82, -63, -55, -49, -61, -22, 36, 70, 80, 7, -115, -244, -378, -265, -283, -55, 75, -16, -39, -24, --22, -35, -31, -41, -51, -62, -59, -48, -32, -16, 10, -17, -4, -24, 8, 28, 5, -4, -35, -80, -90, -124, -199, -168, -182, --246, -274, -286, -283, -293, -137, -123, -32, -115, -161, -198, -201, -173, -160, -134, -117, -96, -89, -86, -65, -45, -9, 16, 24, 22, --9, -40, -55, -71, -62, -24, -25, -14, 1, -30, -75, -134, -104, -98, -99, -103, -85, -60, -53, -64, -33, -61, -85, -115, -111, --130, -134, -139, -109, -117, -62, -31, 18, 7, 5, -11, -23, -14, -14, -18, -26, -32, -55, -75, -91, -118, -133, -156, -133, -116, --101, -89, -88, -93, -31, -92, -84, -79, -94, -93, -97, -98, -81, -94, -89, -89, -63, -62, -77, -60, -17, -39, -25, -29, -28, --27, -25, -21, -34, -49, -66, -80, -97, -118, -111, -108, -103, -97, -86, -94, -78, -36, 33, -95, -41, 21, 25, 30, 32, 41, -47, 52, -40, -89, 52, -29, -67, -70, -64, -67, -65, -65, -65, -62, -71, -77, -83, -90, -96, -104, -98, -95, -93, -92, -101, -70, 57, 111, 11, -82, -174, 50, -61, -159, -156, -154, -145, -161, -164, -159, -73, 24, -186, -84, -2, 99, 65, 75, 70, 66, -63, 59, 67, 70, 74, 74, 76, 83, 69, 62, 50, 60, 60, 98, -98, 61, -22, 6, 52, 15, 70, 68, 33, 59, 52, -55, -16, -14, -4, 9, -101, 76, 95, 91, 85, 72, 67, 62, 85, 97, 99, 98, 95, 103, 70, 51, 27, 43, 72, 122, -40, 52, -32, 30, 38, 8, 39, 79, 40, 83, 17, 72, -25, -15, -25, -16, -19, 55, 132, 111, 100, 71, 58, 42, 86, -107, 121, 125, 126, 155, 76, 38, 8, 24, 54, 93, 15, 35, -19, 96, 107, 30, 83, 81, 86, 110, 113, 92, 17, -10, --63, -10, -45, 56, 156, 134, 116, 70, 55, 50, 129, 179, 180, 163, 145, 168, 50, -5, -34, -16, 204, 191, 201, 195, 18, --129, -122, -18, 8, 76, 193, 58, 1, 19, 16, 51, 33, 98, 52, 95, 192, 145, 156, 122, 85, -3, -7, -9, 17, 155, -218, 146, 208, 154, -3, 72, -49, -125, -350, -250, 107, 137, 122, 66, 40, 35, 35, 93, 100, 60, 45, 27, 39, 41, -7, -26, 96, 115, 190, 175, 123, 49, -4, 28, 155, -34, -85, -52, 41, 99, 126, 32, 218, 292, 251, 213, 44, 13, 33, 98, -78, 66, 24, 26, 23, 28, 38, 38, 2, 22, -10, 9, 42, 6, 9, 163, 274, 325, 316, 226, 84, 107, 181, 200, 445, -433, 242, 188, 29, -125, -151, -70, -12, 18, -5, 14, -4, 2, 11, 10, -2, -9, -16, -32, -22, 10, -14, 18, 74, 111, -139, 138, 100, 59, 56, 90, 118, 159, 183, 156, 261, 314, 367, 152, 253, 114, -80, -10, 10, -12, 4, 4, -19, -4, -24, --45, -49, -31, -31, -14, 25, 13, -13, 34, 46, 30, 39, 29, 43, 71, 82, 81, 78, 95, 130, 183, 190, 183, 216, 202, -65, -7, -142, -123, -190, -186, -166, -147, -121, -108, -89, -77, -64, -64, -45, -28, 6, 20, 35, 19, 50, 61, 59, 47, 50, -75, 66, 49, 18, 24, 57, 141, 117, 101, 82, 63, 49, 19, -24, -7, -31, -47, -79, -102, -125, -113, -142, -106, -129, -106, --73, -24, 8, 9, 8, 47, 55, 33, 27, 19, 10, -3, 14, 31, 47, 50, 45, 45, 40, 43, 47, 37, -12, -14, -108, --33, -65, -65, -36, -42, -16, -15, -35, -13, -10, -18, -37, -36, -16, -15, -44, -5, -18, -12, -11, -11, -9, -10, 1, 9, -18, 27, 38, 48, 38, 23, 10, -2, -3, 9, -35, -82, -131, -12, -75, -128, -136, -139, -134, -145, -150, -150, -77, -16, -133, --71, -24, 7, -2, 1, 0, 0, 1, 0, 3, 6, 8, 10, 12, 18, 11, 9, 7, 5, -2, -74, -62, -98, 29, 107, -125, -17, 87, 129, 145, 145, 127, 140, 139, 139, 83, -11, 127, 86, 22, -97, -62, -73, -79, -83, -84, -82, -74, -73, -76, --78, -78, -73, -79, -77, -66, -72, -78, -63, 121, -45, 0, 30, -3, -11, -26, -9, 34, -10, -17, 9, 4, -21, -23, -37, -84, -57, -78, -79, -107, -122, -125, -113, -83, -71, -83, -90, -94, -83, -92, -87, -64, -72, -91, -22, 66, 22, 3, 32, 39, --7, 67, 35, 72, -9, 44, 29, 10, -38, -35, -25, 19, -20, -84, -80, -128, -155, -161, -141, -96, -82, -103, -110, -117, -95, --115, -108, -66, -81, -103, -9, 53, -25, -54, 67, 83, 22, 65, 78, 61, 100, 82, 59, -20, -71, -30, -71, 16, -16, -83, --91, -178, -227, -233, -186, -85, -38, -85, -115, -127, -98, -113, -92, -43, -54, -146, 90, 305, 251, 106, -79, -140, -36, -4, 55, -167, 48, -5, 14, 16, 21, 32, 10, 86, 49, -84, -57, -98, -15, -52, -156, -245, -291, -271, -156, -116, -166, -105, -148, -253, --179, -253, -239, -314, -279, -19, 117, 118, 67, 22, 20, 20, 76, 88, 47, 12, -3, 38, 36, 59, -5, -72, -57, -108, -45, --22, 7, 4, 35, 108, -92, -117, -9, 36, 89, 148, -44, 149, 258, 283, 190, 66, -30, 27, 96, 78, 51, 13, 6, 4, -16, 37, 12, 15, -26, -16, -43, -71, -30, -40, -22, -36, -45, -92, -149, -199, -223, -218, -221, 3, 35, -117, 38, -152, -108, --137, -117, 1, -17, -13, -6, -15, -9, 4, -10, -18, -14, -32, -37, -40, -20, 26, -26, -66, -48, -45, -13, -3, 28, 39, -85, 117, 173, 138, -46, -47, -87, -137, -99, -42, 119, 164, 66, 41, 42, 23, 11, 7, -16, -15, -50, -55, -37, -36, -17, -4, 2, 37, -6, 16, 39, 16, 16, 0, -20, -23, -42, -79, -63, -48, -39, -65, -80, -87, -49, -96, -53, -24, -100, -140, --171, -179, -135, -140, -123, -111, -79, -70, -70, -65, -47, -17, 20, 28, 23, -5, -19, -18, -29, -17, 6, 4, 2, -3, -23, --58, -98, -87, -75, -81, -62, -51, -17, 7, -23, -4, -40, -74, -114, -103, -121, -111, -130, -103, -109, -62, -36, 2, 5, 25, -10, -14, -1, -5, -9, -20, -29, -34, -34, -33, -47, -53, -67, -52, -44, -41, -36, -62, -58, 0, -60, -38, -39, -52, -46, --58, -52, -27, -45, -51, -47, -32, -43, -52, -51, -12, -48, -40, -39, -39, -35, -32, -27, -41, -55, -66, -74, -82, -93, -88, --82, -75, -67, -66, -76, -24, 14, 30, -43, 9, 33, 36, 37, 30, 39, 44, 43, 9, -42, 43, 12, -28, -73, -61, -64, --62, -62, -63, -60, -65, -68, -72, -76, -79, -83, -78, -75, -73, -71, -84, 11, 7, 49, -76, -125, -106, -45, -112, -117, -112, --108, -89, -107, -108, -92, -121, -66, -108, -124, -85, 40, 10, 12, 9, 5, 4, 1, 11, 14, 14, 11, 10, 14, 0, -3, -1, 5, 13, 12, -112, -3, -75, -33, 2, -21, 22, 5, -25, -14, -5, -2, -49, -47, -65, -35, -106, 2, 24, 3, -1, --11, -8, -6, 26, 35, 23, 11, -1, 3, -30, -33, -18, -13, 27, 37, -35, -3, -69, -6, 5, -14, 15, 65, 12, 47, --17, 42, -55, -49, -55, -50, -67, -4, 44, 6, -7, -34, -36, -43, 18, 36, 28, 14, -6, 15, -65, -70, -27, -32, 26, -15, -42, -20, -65, 54, 98, 40, 90, 87, 96, 87, 83, 92, -6, -29, -77, -26, -66, 10, 49, -13, -43, -80, -72, -54, -58, 102, 66, 13, -35, -25, -130, -120, -44, -49, 82, 55, 102, 148, 36, -132, -159, -67, -15, 44, 140, 53, 6, -7, 13, -43, -2, 42, -11, 15, 87, 75, 121, 80, 50, -7, -32, -38, -1, 84, 96, 17, 23, -29, -97, -44, -57, -157, -365, -274, --63, 109, 154, 80, 26, 11, 15, 67, 81, 66, 36, 9, 12, 30, -12, -6, 21, -10, 1, 29, 26, 0, -16, 22, 127, --60, -112, -48, -39, 40, 186, 9, 138, 258, 206, 172, 1, -52, -23, 99, 77, 66, 13, 14, 10, 11, 33, 36, -13, -3, --48, -18, 29, -4, 8, 96, 145, 155, 151, 101, -3, 63, 89, 7, 114, 60, -96, 15, -124, -149, -148, -88, -15, 7, 5, -13, -11, -12, -5, -16, -23, -15, -32, -51, -44, -11, -39, -23, 15, 21, 37, 34, 21, 34, 33, 50, 37, 104, 96, 26, --18, -31, -24, -100, 61, 15, -32, 8, 20, 13, 19, 6, -16, -3, -9, -35, -47, -39, -38, -20, 11, -4, -32, 9, 35, -28, 36, 14, -2, -23, -35, -54, -74, -11, 34, 102, 41, 6, 38, 20, -46, -105, -163, -172, -200, -198, -162, -128, -113, -102, --80, -71, -57, -54, -58, -58, -40, 5, 33, 25, 43, 42, 43, 3, 0, 16, 32, 48, 43, 38, 33, 47, 45, 27, -9, --37, 27, 0, -53, -47, -69, -77, -98, -117, -130, -111, -141, -99, -117, -92, -74, -38, -23, -15, -20, 27, 48, 31, 37, 28, -20, 7, 10, 10, 12, 13, 16, 18, 17, 18, 28, 16, -26, -31, -80, -32, -58, -54, -35, -38, -23, -33, -56, -43, -36, --49, -58, -48, -42, -25, -52, -1, -6, -7, -6, -7, -6, -5, 1, 2, 2, -1, -6, -11, -12, -17, -22, -27, -15, -2, --68, -97, -90, -51, -95, -100, -106, -107, -99, -110, -113, -112, -106, -58, -101, -96, -61, 3, -11, -8, -8, -8, -7, -7, -9, --10, -10, -11, -11, -12, -13, -13, -12, -12, -20, 1, -1, -13, 83, 91, 3, 63, 86, 33, 42, 41, 25, 27, 23, 21, -80, 61, -3, 74, 74, -12, 2, 1, -3, -6, -5, -2, 6, 8, 4, 5, 6, 8, 6, 3, -2, -2, -15, 21, 75, -22, 25, 42, 39, 28, 29, 50, 79, 46, 27, 55, 20, 4, 20, 5, 42, 23, -2, 8, -8, -18, -17, -5, 24, 34, -22, 18, 15, 21, 21, 15, -3, -3, -27, 33, 98, 62, 5, 42, 46, 18, 72, 51, 91, 14, 34, 58, 16, -8, -18, --3, 37, 32, -1, 8, -12, -28, -24, -3, 43, 58, 35, 38, 36, 42, 40, 19, -14, -10, -50, 25, 72, 15, -51, 65, -86, 31, 77, 90, 70, 71, 65, 66, -18, -53, -27, -41, 20, 32, 4, 18, -18, -46, -37, 1, 99, 132, 79, 67, 54, -60, 71, 51, -14, -10, -4, 133, 291, 257, 117, -63, -134, -56, -6, 43, 110, 53, 10, -6, 26, 38, 19, 28, 78, 85, -16, 9, -32, 9, -35, -134, -172, -171, -84, 10, 66, 88, 58, -21, -108, -44, -204, -160, -218, -223, -88, 124, 159, 94, 18, -4, 3, 51, 72, 57, 30, 18, 48, 35, 36, 29, 27, 59, 50, 43, 31, 34, 22, 42, 98, -56, -62, 65, 85, 142, -215, -14, 122, 270, 204, 122, 19, -76, -18, 94, 85, 58, 10, 5, -1, 5, 45, 41, 18, 5, 25, 6, -37, -15, -4, -73, 122, 149, 120, 40, -75, -40, 58, 185, 255, 189, 40, 29, -19, -119, -111, -67, -8, 13, 9, 9, -9, -15, -3, -23, --29, -7, -33, -39, -33, -19, 3, -31, -21, 20, 42, 62, 65, 96, 135, 168, 163, 221, 170, 6, 94, 149, 199, 109, 263, -232, 134, 91, 75, 60, 39, 35, 23, 10, 20, -23, -40, -31, -33, -18, -5, 19, 49, 24, 31, 37, 22, 29, 36, 49, -43, 50, 70, 86, 130, 202, 197, 199, 213, 261, -30, -2, -75, -102, -136, -140, -139, -99, -106, -99, -87, -63, -50, -49, -55, --42, -20, 14, 24, 22, 20, 29, 39, 38, 43, 49, 50, 38, 14, 9, 6, 23, -4, -7, -21, -13, 6, 19, 28, -2, --16, -41, -73, -104, -98, -104, -95, -99, -89, -78, -55, -35, -17, 3, 37, 50, 28, 30, 24, 18, 11, 2, 16, 33, 52, -52, 52, 51, 45, 39, 29, 25, -19, -12, -16, -23, -13, -18, -18, -14, -17, -7, 6, 2, -8, -5, -7, -19, -10, -19, --9, -26, -31, -26, -27, -24, -22, -21, -26, -30, -30, -27, -22, -17, -19, -18, -17, -15, -12, -14, 24, 26, -20, 16, 23, --9, -9, -11, -20, -18, -18, -22, 25, 15, -16, 24, 16, -28, -20, -21, -22, -22, -23, -22, -21, -19, -19, -18, -17, -16, --15, -14, -14, -13, -17, -58, -50, -47, -92, -63, 30, -95, -69, 9, 17, 21, 34, 24, 25, 42, -72, -102, 35, -69, -98, --50, -53, -61, -64, -67, -67, -66, -56, -54, -56, -62, -65, -65, -73, -71, -55, -58, -49, -72, -31, -59, -75, -33, -32, -36, --29, -41, -38, -59, -47, -37, -47, -57, -90, -64, -36, -71, -64, -88, -97, -105, -97, -85, -51, -44, -62, -81, -98, -98, -117, --105, -60, -68, -43, -46, -48, -29, -59, -15, -4, -19, 18, 42, 23, 3, -16, 16, -48, -64, -70, -64, -68, -53, -70, -101, --126, -146, -138, -129, -64, -51, -74, -100, -131, -129, -173, -150, -59, -81, -31, -46, -40, -51, -82, 23, 78, 47, 85, 93, 99, -67, 53, 78, -26, -54, -68, -52, -49, -37, -86, -152, -203, -228, -205, -157, -35, -1, -59, -129, -187, -195, -240, -176, -40, -64, --91, -45, 78, 135, 82, -90, -159, -89, -24, 23, 78, 53, 18, -25, 17, 31, -20, -19, -33, -43, -56, -25, 13, 5, -20, --56, -130, -145, -75, -41, -58, -111, -150, -199, -198, -164, -114, -165, -315, -272, -198, 70, 166, 100, 17, -12, -9, 38, 61, 61, -25, -4, 1, 11, 3, -26, -68, -113, -162, -106, -67, -41, -6, 26, 69, -85, -116, -1, -52, 33, 235, -15, 60, 238, 149, -91, -21, -96, -59, 67, 67, 58, 3, -3, -7, 2, 27, 25, -12, -20, -48, -36, -20, -18, 5, 1, -24, -55, -67, -79, --103, -66, -73, -117, -239, -326, -374, -139, -227, -148, -113, -83, -14, -2, 15, 6, -7, -17, -13, -32, -34, -19, -44, -58, -55, --38, -43, -54, -60, -76, -72, -69, -42, 21, 38, 46, 14, 72, 31, -55, -221, -293, -338, -265, -88, -18, 72, 35, 30, 31, -20, 0, -7, -4, 7, -17, -35, -45, -40, -25, -13, -16, -16, -12, 16, 24, 18, 0, -34, -93, -119, -136, -158, -77, -42, --9, -86, -112, -82, -89, -150, -155, -132, -179, -174, -172, -139, -102, -103, -93, -74, -66, -55, -49, -65, -70, -65, -10, 18, 30, -22, 9, 8, -26, -33, -23, 2, 31, 51, 31, -8, -64, -53, -69, -104, -128, -25, -28, -58, -74, -84, -93, -107, -124, -117, --107, -117, -90, -84, -65, -58, -45, -41, -26, -17, 10, 19, 21, 30, 25, 21, 15, 4, -10, -18, -25, -23, -27, -25, -27, --21, -25, -42, -46, -24, -38, -43, -39, -43, -42, -44, -54, -61, -63, -57, -65, -56, -45, -53, -32, -30, -6, -1, -7, -7, --8, -8, -6, -12, -20, -32, -45, -61, -77, -69, -63, -57, -53, -28, -24, -58, -49, -1, -62, -56, -18, -17, -16, -10, -13, --12, -9, -64, -65, -6, -54, -58, -15, -22, -22, -21, -21, -21, -20, -27, -30, -34, -37, -40, -48, -42, -39, -36, -33, -38, -56, 45, 68, 60, 0, -115, 77, 12, -85, -84, -84, -83, -98, -102, -99, 4, 62, -128, -8, 49, 65, 48, 55, 53, 52, -54, 56, 63, 66, 64, 64, 64, 64, 62, 57, 44, 50, 43, 77, -24, 60, 11, 23, 53, 40, 63, 72, 71, 62, 45, -62, 8, 4, 16, 16, -42, 66, 56, 62, 61, 58, 63, 73, 97, 104, 95, 91, 85, 82, 79, 67, 35, 45, 42, 71, -66, 65, -13, 33, 35, 29, 51, 63, 80, 43, 10, 68, -3, 0, -24, -8, 6, 48, 65, 63, 67, 59, 70, 83, 127, -143, 129, 133, 125, 115, 105, 72, 19, 35, 28, 52, 49, 38, -40, 55, 87, 47, 89, 101, 96, 51, 53, 78, -11, -26, --47, -17, -15, 43, 65, 68, 77, 70, 93, 124, 208, 227, 185, 172, 144, 123, 116, 85, 1, 16, 116, 105, 171, 193, 97, --56, -118, -70, -11, 32, 54, 63, 32, -25, 31, 51, -2, 36, 26, 70, 108, 80, 72, 47, 6, -65, -70, -31, 105, 161, -205, 243, 147, 54, 7, 51, -92, -58, -166, -179, -135, 91, 171, 117, 25, -9, -16, 26, 55, 62, 47, 31, 40, 18, -8, -31, 81, 106, 142, 89, 55, 31, 34, 48, 73, -34, -38, 86, 87, 157, 259, 26, 89, 276, 100, 39, -27, -90, -54, 58, -71, 62, 10, 3, -5, 2, 39, 55, 12, 32, 36, 40, 14, 5, 38, 136, 219, 263, 254, 184, 69, 120, 258, 466, 293, -139, 54, -15, 36, -133, -78, -15, -15, 34, 26, 17, 3, -16, -9, -26, -30, -7, -31, -41, -31, -23, -37, -30, 15, 53, -84, 88, 96, 121, 166, 182, 154, 182, 140, 88, 155, 240, 327, 168, 389, 202, 43, 68, 75, 47, 34, 29, 15, 23, 34, -6, -17, -30, -33, -24, -15, 17, 25, 40, 38, 27, 30, 29, 41, 57, 59, 86, 139, 169, 220, 303, 313, 329, 369, 393, -10, -6, -142, -127, -146, -114, -90, -68, -69, -70, -57, -51, -39, -37, -42, -37, -31, -6, 13, 22, 45, 66, 75, 79, 75, -71, 74, 60, 37, 42, 64, 117, 74, 51, 24, 11, 41, 25, 1, -13, -55, -64, -86, -101, -103, -89, -91, -66, -72, -45, --47, -32, -33, -7, 23, 58, 53, 47, 44, 41, 40, 35, 54, 74, 95, 104, 106, 112, 90, 75, 61, 50, 11, 17, -44, -0, -11, -17, -3, -6, 5, 12, 5, 17, 12, 11, -4, -4, 15, 9, -11, 9, -4, 0, -1, -2, -3, -6, 0, 3, -9, 16, 26, 39, 35, 31, 25, 20, 29, 37, 31, -2, -65, 37, -3, -60, -63, -67, -69, -75, -78, -82, 0, 36, -70, -0, 27, 22, 19, 20, 18, 18, 17, 16, 20, 23, 26, 30, 32, 36, 33, 32, 31, 33, 35, -79, -67, -97, -35, 38, -114, -65, 21, 104, 113, 115, 114, 114, 115, 123, 20, -62, 116, 23, -40, -95, -73, -85, -87, -89, -87, -82, -75, -74, -77, --82, -86, -89, -90, -86, -70, -77, -72, -88, 66, -60, -29, -3, -27, -17, -40, -38, -2, -48, -44, -28, -17, -36, -64, -58, -38, -86, -101, -112, -126, -130, -121, -100, -74, -68, -85, -101, -115, -120, -121, -105, -64, -75, -77, -69, -2, -11, -19, 5, 10, --2, 37, 25, 59, -20, 7, 10, -13, -47, -63, -53, -32, -58, -124, -132, -160, -169, -155, -124, -78, -70, -99, -118, -146, -162, --163, -137, -60, -79, -61, -47, 14, -34, -65, 18, 65, 51, 78, 98, 98, 52, 33, 60, -32, -64, -52, -70, -20, -57, -155, --187, -237, -248, -215, -141, -45, -30, -93, -144, -189, -213, -195, -125, -21, -40, -182, -70, 100, 137, 125, -32, -127, -86, -27, 12, -28, 61, 38, -30, 24, 22, -15, -46, -12, -38, -120, -72, -73, -42, -71, -120, -210, -215, -101, -96, -110, -118, -194, -251, -226, --196, -164, -122, -198, -221, -231, 31, 143, 112, 19, -21, -32, 11, 41, 49, 20, -3, 11, -6, 10, -33, -103, -122, -187, -147, --99, -48, 34, 53, 18, -90, -91, 61, 11, 88, 256, -20, 8, 231, 87, 1, -17, -98, -59, 21, 48, 45, 1, -14, -19, -0, 22, 19, 6, -15, -10, -21, -51, -18, 10, -41, -92, -130, -159, -159, -124, -143, -134, -41, -336, -448, -422, -198, -206, -128, --65, -50, -5, -4, 16, -2, -1, -19, -16, -33, -32, -19, -43, -49, -53, -55, -34, -62, -103, -117, -115, -95, -37, 41, 75, -87, 68, 82, 21, -51, -209, -279, -346, -226, -71, 16, 148, 63, 49, 53, 27, 2, 7, -1, 22, 7, -14, -42, -39, -33, --33, -16, 16, -8, 6, 24, 11, 2, -33, -90, -100, -98, -98, -46, -29, -27, -65, -64, -49, -32, -157, -124, -76, -139, -125, --113, -92, -66, -78, -73, -63, -58, -53, -48, -56, -59, -65, -23, -1, 24, 3, -8, -8, -17, -19, -18, -3, 13, 36, 13, --29, -101, -93, -100, -122, -126, -59, -39, -39, -72, -78, -91, -102, -118, -97, -96, -82, -78, -51, -43, -38, -42, -40, -22, 0, --1, -9, 9, 17, 19, 19, 21, 7, -5, -13, -25, -28, -39, -40, -46, -49, -46, -41, -39, 21, -36, -20, -19, -38, -38, --50, -50, -37, -50, -51, -49, -29, -24, -34, -23, 5, -6, 3, -3, -5, -7, -8, -7, -20, -33, -49, -63, -78, -92, -81, --69, -59, -50, -32, -37, -18, 16, 59, -40, 4, 47, 52, 54, 53, 60, 65, 66, 6, -35, 65, 11, -21, -30, -26, -29, --28, -29, -30, -29, -35, -39, -42, -46, -50, -58, -51, -48, -44, -40, -43, 51, 41, 79, -12, -83, -135, 23, -66, -125, -128, --126, -109, -132, -134, -125, -73, 3, -148, -85, -23, 72, 41, 48, 48, 48, 49, 52, 57, 59, 59, 58, 56, 53, 49, 44, -38, 45, 52, 62, -89, 46, -22, -7, 32, 22, 50, 42, 22, 28, 24, 26, -18, -15, -27, -7, -98, 40, 47, 41, 49, -50, 60, 73, 90, 92, 84, 76, 65, 55, 43, 37, 27, 38, 62, 55, 2, 32, -32, 13, 15, 23, 21, 57, 49, 49, --12, 48, -27, -12, -47, -34, -46, 14, 53, 36, 49, 46, 61, 75, 110, 122, 112, 111, 92, 71, 41, 22, 13, 28, 74, -46, 11, 33, -29, 40, 81, 64, 94, 106, 119, 42, 43, 80, -4, -11, -74, -20, -61, 5, 36, 13, 38, 44, 81, 125, -189, 191, 154, 129, 86, 46, 9, 7, 2, 17, 106, 6, 12, 86, 73, -46, -100, -81, -26, 14, 15, 74, 55, -35, 27, -47, -14, 20, -32, 15, 115, 96, 121, 61, 28, -21, -20, 34, 183, 189, 195, 206, 85, 3, -2, 29, -1, 8, -142, -154, --166, 32, 143, 116, 34, -14, -36, 2, 35, 56, 48, 25, 19, -8, -49, -7, 48, 47, 86, 39, 20, -8, 51, 64, 38, --34, -40, 67, 56, 135, 262, 50, 13, 233, 12, -33, -43, -76, -64, 6, 39, 51, 11, -3, -11, 3, 22, 47, 4, 34, -18, 42, 45, 20, 62, 127, 188, 208, 203, 173, 130, 161, 258, 427, 84, -98, -97, -107, -7, -129, -53, 10, -6, 28, 24, -16, 8, -17, -17, -24, -23, -13, -28, -41, -38, -36, -70, -36, 4, 17, 41, 42, 68, 97, 130, 133, 109, 95, 64, 110, -88, 128, 165, 58, 252, 48, -34, 24, 47, 35, 31, 12, 0, 20, 31, 27, 3, -32, -36, -35, -26, -2, -10, 35, 33, -19, 35, 21, 16, 12, 21, 49, 103, 138, 176, 233, 232, 245, 281, 269, 3, -58, -157, -134, -139, -89, -47, -43, -36, -41, --31, -46, -39, -36, -34, -39, -50, -31, -5, 14, 45, 64, 66, 63, 58, 50, 56, 53, 50, 54, 74, 114, 86, 61, 30, -5, 29, 1, -49, -52, -100, -96, -103, -104, -105, -78, -87, -46, -59, -30, -42, -32, -40, -19, -8, 32, 47, 41, 47, 47, -50, 49, 59, 69, 78, 83, 83, 84, 60, 44, 36, 25, 14, 14, -52, 2, -21, -23, -9, -17, -1, -2, -21, -4, 0, --5, -16, -3, 13, 18, -8, 34, 23, 22, 20, 16, 14, 10, 17, 22, 26, 28, 34, 42, 40, 36, 30, 21, 28, 40, --3, -40, -70, 7, -43, -78, -81, -83, -77, -86, -89, -89, -40, 9, -77, -34, 3, 38, 26, 28, 26, 26, 26, 24, 26, -28, 31, 34, 36, 37, 33, 32, 31, 32, 34, -40, -34, -65, 40, 93, 86, 10, 78, 98, 102, 102, 92, 95, 93, 92, -78, 15, 78, 74, 33, -64, -40, -46, -48, -47, -44, -37, -34, -34, -37, -38, -40, -46, -43, -41, -35, -38, -37, -32, 101, --11, 25, 30, 8, 19, -10, 4, 46, 3, -7, 10, 16, -3, -15, -24, 56, -41, -67, -61, -71, -71, -61, -36, -22, -20, --32, -40, -48, -56, -47, -39, -26, -28, -47, -29, 56, 31, 20, 32, 30, 25, 50, 21, 84, -10, 28, 21, 19, -10, -43, --27, 4, -27, -91, -79, -92, -90, -72, -27, -9, -5, -32, -31, -49, -77, -57, -51, -29, -28, -31, 1, 74, 18, -24, 33, -61, 60, 75, 101, 97, 41, 27, 48, -18, -47, -44, -66, -7, -45, -125, -115, -134, -128, -88, -4, 47, 38, -19, -32, -55, --93, -48, -13, 7, 13, -141, -38, 104, 120, 134, 14, -81, -74, -33, 4, 1, 75, 61, -29, 28, 23, 6, -29, 20, 8, --65, -37, -75, -36, -72, -149, -202, -173, -24, -35, -30, 5, -101, -173, -170, -131, -137, -41, -68, -145, -197, 2, 104, 105, 31, --14, -48, -13, 23, 38, 24, 9, 27, -18, -4, -29, -64, -44, -77, -84, -60, -25, 81, 83, -6, -66, -45, 104, 102, 163, -244, 11, -60, 171, 20, -66, -2, -68, -39, -22, 21, 29, 9, -16, -23, 1, 17, 21, 23, 8, 35, 16, -36, 3, 31, -4, -18, -40, -78, -85, -42, -77, -29, 161, -184, -310, -245, -184, -67, -84, -25, -6, 15, 4, 10, -1, 4, -20, -18, -24, --21, -15, -30, -33, -43, -57, -31, -54, -89, -83, -75, -42, 18, 80, 123, 142, 147, 115, 50, 10, -29, -36, -73, -23, 60, -60, 124, 64, 57, 67, 41, 17, 21, 12, 32, 27, 6, -32, -37, -40, -44, -9, 38, 15, 11, 25, 16, 16, 1, -16, --5, 20, 60, 64, 77, 81, 88, 104, 97, 118, -65, -48, -33, -69, -70, -45, -35, -24, -36, -39, -42, -47, -47, -45, -39, --36, -47, -33, -22, 6, -3, 2, 5, 19, 24, 18, 15, 9, 19, 8, -8, -39, -46, -43, -45, -36, -53, -31, -20, -58, --73, -83, -91, -102, -79, -79, -52, -61, -35, -35, -28, -34, -28, -11, 16, 3, -11, 11, 16, 19, 20, 24, 22, 24, 27, -17, 9, -4, -14, -26, -40, -38, -17, -13, 28, -20, -1, -5, -24, -26, -36, -27, -8, -19, -25, -16, 0, -1, -2, -3, -28, 1, 3, 2, 0, -1, -2, -2, -13, -22, -30, -36, -39, -40, -34, -26, -21, -16, -20, -29, 19, 45, 46, -5, 33, -43, 49, 50, 45, 54, 58, 58, 44, 5, 59, 46, 16, -26, -18, -21, -21, -22, -23, -23, -25, -25, -26, -27, -28, -31, --29, -28, -27, -25, -28, 0, 0, 21, -67, -90, -50, -45, -84, -62, -66, -63, -43, -59, -59, -48, -87, -58, -59, -92, -75, -14, -6, -5, -6, -5, -3, 2, 4, 5, 5, 2, -2, -7, -12, -12, -5, -2, 17, -1, -69, -1, -40, -24, -5, -3, -5, -10, -23, -23, -14, -21, -30, -31, -66, -39, -83, -27, -15, -30, -23, -19, -4, 14, 24, 23, 11, 1, -14, -28, -43, --36, -9, -3, 29, -2, -40, -5, -31, -2, -2, 13, 0, 32, 22, 27, -15, 14, -31, -25, -64, -55, -75, -40, -22, -45, --40, -37, -18, 7, 27, 32, 18, 12, -17, -45, -81, -72, -16, -11, 69, 14, -6, 15, -18, 24, 67, 77, 88, 101, 123, -40, 33, 66, -1, -11, -85, -43, -81, -54, -60, -99, -88, -72, -23, 48, 89, 74, 31, -1, -51, -98, -140, -94, 3, 13, --23, -99, -86, 6, 65, -19, -79, -89, -49, -7, -6, 83, 73, -37, 20, 31, -8, -8, -57, -38, 39, 50, 81, 34, 5, --36, -52, -2, 137, 97, 68, 48, -70, -129, -106, -80, 39, 22, -118, -146, -197, -34, 91, 95, 44, -8, -50, -20, 15, 44, -34, 9, -1, -29, -59, -53, -32, -55, -50, -61, -43, -40, 72, 78, 1, -49, -53, 40, 38, 111, 227, 60, -109, 99, -42, --69, -34, -49, -51, -42, -1, 27, 14, -10, -18, 3, 3, 22, 0, 15, -6, 17, 39, 29, 63, 64, 60, 31, 22, 42, -86, 100, 108, 142, -234, -374, -277, -218, -69, -80, -26, 9, 19, 11, 12, 7, 7, -18, -23, -18, -13, -20, -24, -38, -49, --52, -77, -48, -43, -57, -47, -35, 10, 56, 73, 72, 64, 23, -8, 57, -44, -68, -102, -90, -24, -106, -48, -9, 15, 32, -32, 4, -1, 14, 20, 33, 13, -31, -39, -46, -39, -27, -27, 14, 19, 16, 27, 10, -10, -37, -26, -7, 24, 58, 77, -90, 62, 49, 50, 8, -28, -97, -106, -100, -92, -53, -13, -16, -9, -16, -15, -42, -43, -41, -35, -44, -60, -49, -26, -2, -19, 28, 25, 17, 13, 8, 13, 23, 45, 42, 40, 32, 36, 26, 14, -12, -23, -41, -86, -94, -128, -116, -111, -103, -97, --72, -75, -44, -47, -32, -38, -33, -37, -27, -28, -7, 16, 20, 36, 34, 36, 37, 34, 29, 25, 20, 16, 10, -5, -18, --23, -30, -3, -8, -29, -12, -28, -28, -27, -36, -28, -35, -48, -40, -32, -36, -32, -15, -10, 5, -3, 30, 28, 24, 23, -21, 20, 18, 20, 20, 17, 11, 6, 3, 5, 5, 4, -1, -5, 1, -41, -54, -33, -40, -61, -51, -51, -50, -41, -45, --45, -42, -58, -35, -34, -48, -30, 15, 4, 5, 5, 5, 4, 4, 3, 1, 1, 2, 1, -1, -2, -4, -5, -5, -7, -22, 19, 12, 72, 64, -14, 66, 62, 11, 7, 6, -1, -2, -5, -11, 61, 64, -30, 50, 62, 10, 14, 17, 16, 19, -22, 30, 29, 29, 27, 29, 28, 22, 24, 22, 17, 21, 25, 44, 54, 45, 47, 38, 39, 45, 31, 44, 63, 46, 32, -39, 29, 20, 18, 7, 10, 20, 0, 14, 13, 20, 31, 55, 55, 54, 45, 46, 42, 31, 37, 35, 24, 33, 18, 30, -75, 59, 34, 42, 34, 43, 39, 22, 74, 19, 30, 34, 29, 21, -23, -7, 10, 7, -13, 4, 10, 23, 44, 89, 82, -84, 64, 82, 73, 38, 51, 35, 11, 32, 42, 55, 93, 65, 15, 45, 60, 72, 76, 96, 97, 35, 30, 45, 6, -11, --47, -45, -22, -25, -44, -15, 4, 31, 79, 159, 162, 133, 88, 104, 93, 46, 74, 71, 34, 63, -33, -4, 57, 78, 103, -34, -41, -69, -46, -6, -9, 88, 80, -27, 27, 29, 27, 12, 31, 47, 50, 46, 3, 6, -40, -123, -123, -55, 112, 90, -108, 157, 27, -52, -76, -38, -24, 45, 8, -89, -150, -31, 60, 86, 49, 5, -52, -30, 7, 33, 29, 19, 29, -22, -29, --24, 7, 45, 60, 6, 1, 13, 113, 100, -7, -34, -6, 106, 161, 203, 200, 67, -135, 41, -40, -79, -7, -29, -19, -51, --7, 13, 19, -9, -20, 1, 8, 23, 28, 29, 55, 42, 12, 35, 57, 84, 105, 102, 79, 68, 79, 89, 149, 279, 11, --97, -27, -153, 88, -20, 8, 35, 37, 20, 7, 5, 7, -18, -19, -12, -7, -11, -13, -19, -35, -49, -41, -40, -42, -18, --1, 32, 72, 110, 145, 160, 170, 112, 68, 74, 151, 209, 235, 171, 159, 56, 22, 34, 46, 59, 49, 32, 31, 29, 34, -37, 18, -17, -34, -47, -46, -9, 27, 31, 21, 23, 20, 31, 41, 61, 92, 133, 196, 174, 191, 210, 239, 242, 206, 204, -56, 29, -23, -12, -19, 12, 19, 15, 10, -2, -13, -31, -37, -40, -28, -23, -27, -40, -36, -16, 3, 26, 31, 56, 61, -50, 34, 14, 8, 15, 32, 60, 43, 53, 68, 73, -27, -24, -25, -50, -81, -81, -84, -85, -71, -64, -42, -44, -35, -31, --27, -26, -22, -8, 13, 8, 3, 18, 23, 22, 21, 23, 34, 49, 62, 61, 54, 48, 30, 13, -7, -14, 10, 13, 0, --4, 1, -7, -14, -20, -19, -9, 1, 1, -3, 4, 8, 6, 19, 11, 23, 8, 4, 7, 7, 9, 11, 10, 9, 8, -11, 14, 22, 31, 27, 27, 24, 20, -3, -7, 25, 21, -16, 13, 14, -14, -11, -12, -16, -13, -11, -13, 29, 24, -5, -30, 28, -7, -2, -3, -4, -4, -5, -5, -3, 0, 2, 4, 6, 10, 5, 2, -1, -2, -4, -48, -39, -49, -62, -24, -60, -69, -33, 41, 39, 41, 51, 49, 50, 56, -31, -68, 56, -32, -67, -54, -49, -55, -56, -53, -51, -44, -45, -45, -48, --49, -53, -60, -63, -60, -44, -46, -23, -53, 11, -35, -25, -16, -26, -12, -33, -43, -34, -46, -34, -40, -18, -26, -67, -53, --19, -77, -75, -87, -87, -78, -62, -37, -37, -42, -57, -64, -77, -90, -100, -84, -36, -36, -19, -49, -32, -17, -4, -1, -5, -8, -3, 1, 12, -3, 2, -9, -9, -21, -57, -52, -63, -72, -96, -107, -115, -104, -82, -40, -43, -45, -68, -70, -99, -131, --149, -123, -34, -39, 36, -9, 13, 6, -2, 14, 47, 79, 72, 86, 102, 40, 26, 45, 5, -14, -69, -64, -67, -94, -147, --175, -185, -156, -99, -4, 3, -27, -80, -100, -138, -184, -196, -125, 16, 20, -165, -146, -87, -17, 72, 19, -52, -89, -67, -23, --12, 86, 81, -32, 14, 14, 15, -21, -31, -47, -37, -4, 2, -13, -47, -89, -125, -80, 49, -13, -53, -75, -185, -228, -200, --182, 36, 18, -71, -133, -205, -86, 28, 67, 52, 7, -55, -38, -3, 30, 14, -8, -12, -35, -38, -76, -94, -118, -155, -135, --84, -35, 99, 90, -25, -64, -52, 40, 63, 109, 163, 62, -212, -70, -54, -59, -19, -17, -24, -70, -30, 1, 16, -12, -21, --3, -10, -2, 7, -5, -14, -14, 10, 32, 48, -2, -60, -122, -137, -89, -1, 25, -41, -167, -413, -467, -347, -273, -70, 3, -10, 9, 48, -1, -1, -1, 3, -17, -25, -13, -5, -20, -17, -29, -54, -63, -61, -59, -89, -110, -113, -82, -27, 37, 44, -43, 42, -15, -45, -16, -121, -179, -241, -138, -228, -165, -11, -13, 1, 35, 35, 8, 14, 15, 14, 29, 15, -20, -39, -53, --50, -44, -24, -10, 3, 16, 12, 10, -11, -45, -28, -16, -5, 12, 11, -16, -47, -85, -144, -189, -31, -69, -17, -35, -13, -2, 21, 15, 14, 5, -4, -31, -43, -46, -41, -46, -54, -52, -41, -19, -13, -12, -15, -16, -16, -21, -21, -9, 18, 12, --7, -50, -23, -7, 7, -4, -73, -75, -89, -107, -120, -113, -102, -95, -80, -69, -58, -49, -36, -37, -33, -36, -34, -31, -32, --38, -23, -4, 15, 12, 10, 13, 1, -11, -23, -33, -37, -48, -49, -57, -61, -69, -22, -29, 3, -29, -28, -28, -44, -51, --55, -59, -57, -62, -56, -55, -36, -25, -30, -15, 3, 5, 14, 10, 12, 13, 16, 19, 13, 7, -2, -12, -24, -36, -33, --29, -26, -25, -40, -44, -52, -35, 12, -66, -46, -7, -2, 1, 6, 10, 14, 18, -39, -56, 21, -29, -41, -23, -24, -25, --24, -24, -24, -22, -27, -30, -32, -34, -36, -40, -39, -41, -42, -43, -50, 55, 47, 66, 40, -13, -92, 60, -4, -75, -84, --84, -80, -88, -90, -93, -5, 52, -110, -19, 30, 60, 43, 51, 51, 56, 59, 66, 62, 61, 60, 64, 63, 57, 56, 52, -45, 52, 65, 77, -23, 64, 30, 18, 40, 42, 45, 45, 35, 48, 41, 36, 18, 19, 14, 13, -55, 41, 40, 49, 58, -71, 84, 104, 94, 88, 80, 86, 82, 69, 65, 59, 46, 63, 67, 57, 43, 51, 23, 29, 18, 38, 9, 16, 30, 38, -16, 32, 18, 31, -15, -8, -16, 12, 38, 44, 62, 83, 105, 143, 120, 118, 105, 130, 122, 86, 78, 57, 33, 59, 104, -75, 66, 76, 37, 40, 52, 77, 71, 81, 87, 33, 37, 47, 30, 23, -53, -27, -55, -25, 5, 24, 67, 113, 168, 237, -205, 163, 125, 153, 141, 89, 85, 72, 48, 84, 34, -17, -35, 11, 56, 30, -18, -74, -61, -15, -8, 91, 86, -25, 18, -29, 40, 47, 20, 54, 139, 112, 91, 38, -11, -73, -36, 56, 215, 177, 185, 220, 77, 7, -20, 2, 101, 102, 25, -62, --129, -73, 11, 59, 61, 22, -49, -43, -8, 30, 27, 16, 10, -21, -47, -29, 44, 65, 104, 45, 35, 40, 121, 96, -6, --18, 8, 77, 160, 184, 131, 104, -203, -123, -76, -49, -27, 9, -5, -66, -30, 0, 22, 2, -11, -5, -5, 19, 21, 32, -34, 33, 53, 55, 68, 124, 162, 164, 160, 159, 142, 235, 262, 204, 75, 9, 48, -143, 172, 52, 38, 59, 54, 27, 3, -13, 7, -13, -21, -4, 1, -9, -1, -15, -34, -44, -58, -37, -8, 15, 35, 64, 85, 109, 124, 125, 117, 48, 34, 86, -190, 263, 324, 223, 115, -23, -86, -8, 23, 35, 42, 35, 31, 38, 27, 34, 21, -2, -32, -50, -44, -25, -12, 22, 20, -17, 23, 35, 56, 93, 127, 165, 226, 203, 217, 238, 268, 242, 172, 137, 129, 66, -20, 20, 20, 49, 60, 42, 46, 29, -14, -14, -27, -37, -27, -23, -21, -43, -40, -31, 7, 36, 41, 61, 62, 48, 33, 15, 4, 21, 56, 115, 103, 116, 140, -134, -9, -32, -52, -58, -95, -86, -81, -72, -71, -55, -49, -34, -42, -33, -33, -29, -30, -21, -13, -3, 9, 15, 25, 20, -19, 19, 32, 46, 57, 64, 63, 66, 50, 36, 21, -1, 18, 14, -36, -4, -16, -23, -19, -29, -18, -12, -17, -6, -5, --3, -8, -4, 13, 10, 0, 10, 4, 9, 12, 15, 19, 20, 27, 34, 42, 49, 59, 70, 58, 49, 40, 31, 2, 4, --3, -30, -72, -1, -33, -74, -73, -74, -74, -76, -77, -78, -21, 9, -65, -17, 8, 7, 6, 7, 6, 7, 7, 8, 11, -14, 17, 21, 25, 31, 23, 18, 12, 8, 5, -53, -42, -73, -8, 52, 106, -35, 35, 98, 96, 95, 90, 101, 102, 100, -41, -24, 102, 40, -12, -74, -52, -60, -60, -57, -53, -44, -49, -51, -55, -53, -56, -64, -63, -59, -45, -49, -31, -51, 79, --29, 13, 8, -19, 1, -37, -36, -11, -29, -23, -23, 11, -3, -30, -37, 35, -73, -85, -84, -88, -75, -61, -34, -43, -51, --66, -65, -72, -84, -82, -67, -28, -29, -37, -51, 12, 1, 32, 11, 1, 13, 1, -22, 12, -19, 25, -10, 24, 3, -29, --29, -25, -62, -111, -102, -114, -92, -70, -17, -44, -51, -79, -67, -84, -122, -112, -89, -24, -28, 16, -3, 52, 20, 23, 13, -28, 71, 52, 65, 62, 36, 28, 28, 18, -4, -38, -66, -42, -97, -164, -159, -169, -125, -67, 31, 0, -43, -100, -89, -103, --151, -118, -60, 38, 46, -213, -119, -40, -7, 80, 50, -21, -81, -71, -26, -8, 82, 77, -20, 8, 3, 44, -2, 27, 3, --36, -12, -47, -45, -90, -138, -163, -107, 18, -45, -72, -66, -177, -216, -206, -195, 26, 29, 9, -92, -186, -114, -26, 38, 53, -19, -51, -50, -18, 18, -1, -15, -11, -25, -8, -64, -91, -98, -144, -123, -67, 13, 118, 88, -43, -63, -28, 61, 121, 133, -89, 58, -268, -230, -58, -32, -17, 17, 9, -77, -43, -17, 15, -4, -17, -12, -16, -11, 21, -10, -4, -28, -12, 32, 31, --21, -87, -142, -163, -120, -51, 26, -54, -267, -343, -334, -258, -245, 29, 102, 59, 26, 65, -2, -8, 0, 1, -11, -22, -9, --2, -13, -8, -18, -48, -63, -40, -61, -98, -105, -108, -60, -10, 52, 55, 54, 48, -17, -44, -53, -82, -116, -153, -35, -242, --128, 16, -1, 8, 38, 35, 23, 33, 22, 15, 20, 12, -3, -34, -53, -56, -50, -14, -25, -9, 15, 4, 17, 13, 9, -25, 38, 51, 40, 29, -13, -18, -63, -167, -201, 18, 13, 67, 40, 58, 58, 53, 46, 38, 27, 7, -14, -34, -47, -43, --40, -36, -44, -44, -31, -32, -29, -27, -16, -14, -23, -29, -25, -8, -11, -26, -62, -34, -3, 32, 42, -86, -78, -65, -89, --90, -89, -79, -76, -59, -61, -41, -53, -32, -43, -32, -40, -36, -33, -26, -47, -45, -20, -5, -7, -9, -5, -16, -26, -36, --42, -45, -51, -44, -47, -53, -67, -30, -36, 15, -39, -26, -29, -52, -57, -66, -63, -46, -58, -57, -50, -29, -27, -33, -26, -5, -20, -9, -9, -5, 0, 5, 11, 3, -3, -10, -18, -27, -36, -39, -38, -34, -30, -54, -65, -36, -7, 25, -57, -18, -14, 21, 24, 24, 33, 38, 41, -6, -44, 42, 0, -28, -47, -39, -41, -39, -38, -38, -35, -39, -41, -44, -46, -47, -49, --49, -51, -53, -56, -64, 39, 34, 60, -19, -69, -85, 7, -60, -88, -99, -98, -87, -93, -92, -91, -58, 0, -97, -68, -27, -51, 29, 35, 36, 41, 43, 49, 44, 43, 41, 45, 43, 37, 33, 32, 31, 37, 59, 49, -63, 37, -1, -11, 12, 17, -22, 9, -16, 12, 19, 5, -1, 4, -13, -6, -84, 11, 24, 24, 37, 54, 69, 86, 71, 61, 49, 57, 51, 35, 26, -26, 34, 47, 67, 34, -10, 17, 9, 3, -8, 19, -25, -3, -21, 31, 2, 15, 3, 22, -14, -20, -49, -15, 24, 19, -35, 61, 82, 113, 82, 78, 64, 87, 75, 36, 18, 12, 28, 43, 117, 52, 21, 53, 44, 20, 33, 71, 55, 56, 60, -32, 42, 45, 42, 41, -47, -23, -83, -54, -16, -17, 24, 81, 141, 202, 152, 104, 66, 92, 74, 17, -1, 12, 53, 77, -2, -67, -121, -54, 25, 20, -9, -78, -68, -20, -3, 82, 75, -17, 4, 18, 44, 58, 13, 48, 149, 120, 116, 30, -19, --47, -2, 93, 223, 166, 146, 150, 18, -31, -39, -38, 163, 108, 21, -50, -138, -113, -30, 29, 56, 25, -42, -50, -21, 26, -13, -1, -17, -16, -42, -40, 22, 11, 39, 10, 24, 60, 110, 71, -27, -26, 2, 44, 127, 133, 60, 98, -256, -287, -100, --15, -53, 37, 9, -70, -44, -11, 17, 11, -4, -14, -17, 8, 14, 18, -5, 1, 60, 53, 58, 93, 106, 92, 100, 120, -110, 267, 232, -22, -47, -68, -44, -161, 167, 130, 78, 65, 58, 21, 1, 16, 7, -5, -20, -4, 1, -7, 2, -16, -37, --44, -68, -43, -12, -3, 11, 38, 56, 80, 71, 55, 26, -36, -29, 40, 82, 115, 160, 129, -55, -126, -134, -39, 1, 11, -26, 28, 24, 34, 16, 21, 14, 6, -31, -52, -47, -47, -52, -10, 4, 6, 19, 28, 46, 77, 95, 116, 150, 146, 151, -150, 153, 105, 23, -44, 126, 56, 7, 38, 43, 63, 75, 57, 64, 48, 33, 0, -20, -38, -33, -33, -28, -42, -37, -35, -1, 20, 25, 29, 25, 11, 7, 6, 7, 23, 50, 91, 97, 111, 135, 124, -15, -50, -80, -75, -103, -88, -74, -60, -65, --49, -55, -34, -48, -42, -43, -39, -44, -40, -44, -26, -3, -1, 14, 9, 9, 10, 13, 14, 13, 22, 25, 34, 29, 24, -20, -9, 0, -10, -54, -21, -41, -44, -40, -51, -38, -38, -50, -37, -30, -32, -35, -26, -14, -7, -23, 1, -1, 2, 7, -11, 16, 19, 28, 36, 42, 46, 49, 52, 38, 26, 17, 8, -14, -10, -44, -70, -81, -37, -73, -92, -91, -91, -85, -89, --90, -89, -64, -28, -77, -57, -29, 1, -4, -1, -1, 0, 2, 3, 4, 5, 7, 9, 11, 16, 9, 4, -2, -7, -11, --14, -9, -34, 46, 78, 63, 24, 65, 69, 64, 62, 49, 64, 64, 56, 72, 36, 54, 67, 42, -35, -17, -18, -19, -14, --10, -1, -8, -10, -15, -9, -11, -19, -15, -13, -9, -10, 1, -2, 83, 9, 47, 25, 5, 23, -12, -5, 17, 11, 10, -12, 33, 23, 18, -5, 38, -26, -41, -28, -28, -11, 1, 23, 6, -3, -17, -5, -5, -20, -9, -2, 10, 12, -9, -12, -48, 29, 56, 20, 6, 22, -1, -31, 5, -12, 36, 5, 45, 33, 7, -1, 6, -26, -59, -37, -39, -9, 12, 61, 19, -11, -17, 14, 9, -36, -6, -2, 11, 15, 32, 25, 73, 44, 52, 15, 11, 55, 30, 37, 20, 30, 36, 22, 35, 21, --3, -45, -30, -73, -105, -67, -55, 4, 59, 132, 73, 23, -30, 16, 21, -33, 25, 49, 66, 79, -151, -55, -10, -3, 68, -57, 4, -63, -60, -18, -1, 70, 63, -4, 2, 0, 62, 40, 82, 84, 46, 35, -26, -45, -102, -145, -131, -50, 75, 23, -12, 44, -67, -111, -126, -125, 41, 65, 90, -26, -141, -118, -57, 15, 44, 23, -39, -53, -27, 13, -7, -12, -8, -7, 9, --31, -31, -20, -36, -45, -5, 83, 119, 64, -58, -47, 11, 86, 179, 160, 27, 52, -264, -351, -86, -19, -37, 42, 34, -65, --42, -23, 13, 9, -7, -20, -15, -5, 31, 3, 15, -15, -6, 32, 25, 11, -20, -45, -61, -40, -26, 107, 57, -172, -126, --99, -75, -154, 167, 189, 115, 63, 61, 10, -3, 7, 5, -2, -16, -7, -1, -2, 1, -8, -33, -51, -32, -52, -64, -48, --39, 8, 41, 82, 82, 74, 49, -3, -15, -31, 30, 49, 71, 126, -114, -52, -6, 3, 20, 30, 27, 37, 42, 29, 18, -12, 8, 10, -29, -50, -57, -47, -15, -29, -16, 8, 3, 29, 50, 83, 98, 117, 142, 115, 104, 73, 89, 51, -50, -81, -91, 96, 105, 93, 93, 91, 74, 67, 58, 47, 25, 6, -19, -41, -39, -30, -18, -31, -37, -35, -29, -19, -12, 7, 9, --3, -12, -18, -18, -9, -2, 2, 13, 42, 82, 101, -59, -57, -38, -57, -61, -59, -50, -47, -39, -46, -30, -47, -36, -48, --38, -43, -39, -35, -21, -36, -40, -22, -14, -15, -15, -11, -13, -14, -15, -13, -13, -10, -4, -4, -12, -33, -26, -30, -5, --40, -29, -35, -52, -56, -61, -51, -33, -39, -41, -32, -22, -26, -23, -27, -4, -32, -27, -22, -18, -11, -4, 2, -2, -3, --3, -3, -3, -3, -13, -20, -21, -21, -44, -54, -15, 1, -6, -31, -7, -8, -2, -1, -4, 3, 8, 8, 8, -18, 11, -9, -9, -46, -35, -35, -34, -32, -32, -29, -30, -30, -30, -31, -31, -28, -31, -33, -38, -42, -46, -5, -1, 6, -54, -59, --7, -43, -60, -26, -35, -34, -24, -23, -20, -16, -54, -42, -11, -58, -57, 0, -9, -9, -8, -3, -1, 5, -1, -2, -6, --2, -5, -13, -15, -13, -3, -3, 21, -8, -39, -7, -14, -24, -20, -7, -20, -36, -50, -28, -11, -24, -9, -6, -31, -27, --56, -38, -23, -28, -18, 0, 15, 29, 14, 2, -13, -5, -11, -29, -35, -25, 8, 10, 27, -14, -41, -16, 12, -16, -27, -1, -45, -31, -52, 3, -1, -7, 2, 11, -8, -27, -58, -48, -30, -37, -30, -3, 16, 43, 13, 6, -15, 6, -10, -53, --63, -46, 13, 8, 83, 11, -9, 17, 48, -4, 4, 54, 26, 22, 18, 30, 40, 35, 44, 43, -19, -28, -84, -88, -77, --85, -61, 0, 57, 109, 57, 10, -35, -10, -29, -87, -87, -41, 62, 61, -99, -112, -149, -87, 15, 19, -5, -68, -60, -19, -0, 60, 54, -2, -9, -2, 42, 49, 31, 50, 95, 78, 72, -13, -61, -59, -28, 58, 155, 86, 38, 11, -89, -113, -99, --119, 137, 85, 36, -27, -149, -137, -63, 3, 40, 18, -32, -50, -30, 17, -7, -19, -35, -7, -14, -41, -29, -63, -66, -55, --5, 76, 88, 32, -65, -47, -4, 37, 109, 93, -1, 52, -254, -401, -133, -19, -72, 46, 22, -57, -46, -21, 11, 16, 0, --23, -24, -7, 11, 0, -28, -25, 34, 35, 34, 20, -14, -48, -44, 0, 20, 185, 90, -265, -233, -211, -174, -157, 116, 202, -128, 71, 50, 12, 4, 12, 6, 3, -16, -9, -3, -2, 1, -14, -35, -45, -62, -50, -40, -46, -36, -11, 15, 48, 26, --4, -56, -88, -72, -25, -67, -93, -86, -11, -225, -178, -108, -46, -12, -4, 9, 20, 18, 21, 5, 6, 3, 6, -30, -50, --54, -65, -70, -47, -21, -5, 8, 18, 28, 41, 44, 48, 50, 61, 49, 17, -11, -66, -139, -212, 75, 35, 53, 53, 61, -64, 69, 59, 63, 55, 41, 13, -12, -36, -40, -42, -35, -35, -29, -29, -14, -11, -10, -14, -19, -27, -22, -7, 9, 17, -25, 26, 49, 62, 80, 75, -40, -65, -84, -81, -92, -75, -57, -42, -47, -40, -50, -38, -47, -49, -48, -48, -52, -52, -58, --47, -26, -21, -7, -8, -6, -3, -11, -22, -33, -31, -28, -20, -13, -10, -7, -31, -33, -45, -48, -47, -58, -59, -64, -72, --66, -68, -73, -67, -58, -59, -54, -44, -44, -31, -34, -19, -13, -13, -9, -4, 1, 7, 9, 12, 11, 9, 3, -3, -13, --23, -28, -32, -40, -41, -69, -73, -49, -68, -78, -64, -62, -60, -53, -54, -52, -48, -71, -59, -43, -64, -55, -23, -26, -24, --22, -20, -19, -17, -19, -20, -21, -23, -23, -23, -26, -29, -33, -37, -39, 34, 31, 28, 58, 41, -20, 58, 39, -8, -18, --20, -28, -19, -19, -26, 45, 63, -30, 36, 53, 25, 26, 31, 33, 38, 41, 47, 40, 39, 34, 42, 42, 33, 37, 36, -33, 35, 43, 50, 28, 42, 53, 22, 22, 34, 14, 18, 22, 37, 34, 34, 36, 35, 43, 20, -3, 23, 17, 35, 43, -61, 71, 83, 64, 54, 42, 61, 63, 46, 58, 56, 48, 54, 37, 31, 46, 38, 57, 16, -1, 24, -19, -34, -15, 3, -26, 18, 43, 48, 32, 15, 10, 6, 13, 34, 49, 81, 98, 128, 87, 81, 59, 99, 100, 53, 80, 69, 48, 57, 70, -51, 56, 54, 74, 9, -5, 38, 7, 6, -14, 21, 41, 24, 50, 50, 22, -15, -39, -45, -21, 26, 70, 135, 182, 216, -146, 96, 55, 119, 130, 73, 122, 116, 88, 99, -50, -10, -34, -25, 35, 43, 20, -39, -41, -7, 2, 50, 43, 13, -7, --4, 58, 76, 105, 138, 141, 97, 38, -27, -83, -102, -40, 64, 171, 131, 119, 141, 40, 0, -23, -38, 76, 107, 138, 38, --95, -115, -75, -3, 32, 19, -25, -46, -31, 10, -7, -6, -9, 10, 13, 5, 32, 46, 72, 39, 59, 133, 94, 22, -77, --32, 40, 95, 200, 158, -27, 36, -200, -404, -157, -50, -64, 47, 39, -37, -35, -22, 11, 21, 4, -25, -14, 2, 29, 21, -26, 10, 21, 32, 27, 52, 61, 67, 63, 70, 45, 194, 170, -32, 52, 73, 70, -40, 246, 240, 165, 105, 46, 27, 12, -15, 7, 5, -10, -7, -2, 9, 8, 0, -15, -32, -35, -36, -16, 14, 38, 68, 82, 95, 90, 67, 15, -9, 1, 10, -109, 162, 230, 210, 14, -13, -66, -12, 17, 9, 13, 40, 35, 27, 15, 5, 2, 13, -24, -44, -56, -45, -33, -33, -22, --6, 6, 33, 70, 127, 140, 163, 194, 168, 158, 144, 163, 134, 64, 32, 140, 132, 90, 102, 90, 92, 77, 69, 68, 59, -42, 26, 0, -28, -31, -23, -10, -20, -25, -29, -13, 1, 8, 28, 29, 16, 11, 3, -5, 12, 43, 89, 83, 96, 119, -132, -18, -32, -26, -29, -43, -34, -24, -16, -22, -26, -27, -34, -41, -46, -43, -43, -44, -37, -25, -22, -23, -18, -15, -13, --10, -5, 2, 10, 17, 23, 24, 33, 32, 32, 25, 3, -23, -27, -45, -40, -41, -48, -51, -56, -51, -40, -32, -26, -26, --20, -23, -26, -16, -23, -22, -31, -33, -26, -23, -17, -12, -8, -6, -2, 4, 11, 19, 27, 12, 0, -9, -14, -26, -30, --12, -21, -55, -15, -23, -53, -50, -51, -53, -51, -50, -50, -9, -4, -44, -11, -6, -28, -22, -21, -20, -18, -17, -15, -13, --11, -10, -9, -8, -3, -8, -11, -16, -20, -19, -35, -27, -43, -38, 0, 73, -50, -12, 52, 45, 45, 46, 56, 61, 62, --3, -39, 74, -2, -38, -45, -35, -39, -38, -34, -32, -27, -32, -34, -39, -34, -37, -46, -45, -41, -26, -31, -13, -43, 21, --33, 2, -16, -34, -13, -47, -56, -47, -41, -25, -29, 3, 0, -19, -29, 1, -62, -57, -57, -51, -35, -24, -13, -27, -38, --54, -44, -48, -65, -61, -46, -6, -13, -12, -45, -32, -25, 32, -18, -30, -5, -47, -55, -54, -27, 5, -17, 16, 11, 8, --18, -37, -58, -71, -67, -66, -40, -25, -1, -30, -37, -63, -42, -57, -101, -89, -61, 8, -9, 37, -13, -8, -6, 56, -21, --24, 31, -9, -13, -25, 21, 33, 22, 41, 39, 22, -31, -59, -97, -117, -109, -94, -39, 7, 43, -8, -51, -95, -66, -73, --125, -91, -34, 74, 55, -179, -115, -115, -80, 20, 30, 8, -40, -40, -13, -1, 33, 29, 17, -19, -24, 35, 38, 68, 68, -34, 25, -4, -62, -101, -84, -52, 23, 81, 18, -45, -88, -153, -159, -133, -163, 59, 63, 85, 16, -134, -142, -90, -18, 20, -9, -23, -42, -34, 4, -22, -25, -33, 6, 23, -21, -61, -93, -114, -81, -12, 93, 62, -9, -108, -63, 3, 58, 119, 79, --54, -6, -193, -435, -191, -78, -68, 34, 27, -29, -38, -26, 6, 16, 2, -28, -24, -18, 13, -6, -19, -26, 2, 16, 8, --44, -107, -144, -149, -97, -43, 62, -51, -352, -307, -256, -211, -95, 77, 242, 177, 88, 43, 12, 16, 9, 4, 5, -10, -12, --6, 3, 1, -7, -22, -38, -39, -48, -61, -67, -57, -34, -2, 31, 11, -25, -84, -91, -79, -73, -141, -192, -211, -76, -268, --148, -48, -35, -14, -7, -3, 18, 16, 6, -3, -6, -6, 2, -26, -43, -62, -69, -64, -70, -43, -16, -4, 11, 20, 29, -25, 24, 10, 17, -10, -64, -97, -142, -204, -248, 30, 37, 94, 67, 74, 62, 55, 52, 51, 51, 40, 26, 0, -28, -39, --41, -34, -25, -22, -19, -26, -35, -36, -34, -35, -40, -28, -8, 13, 14, 11, -12, 11, 21, 31, 35, -54, -60, -57, -59, --52, -42, -24, -14, -17, -24, -31, -38, -38, -47, -44, -50, -52, -51, -51, -54, -47, -37, -28, -24, -18, -10, -22, -35, -46, --53, -54, -53, -42, -34, -28, -42, -60, -68, -35, -65, -63, -64, -77, -80, -82, -80, -72, -74, -68, -65, -54, -48, -56, -46, --33, -38, -28, -29, -26, -22, -18, -12, -18, -23, -29, -35, -43, -53, -57, -62, -63, -63, -58, -64, -64, -47, -11, -72, -52, --23, -18, -15, -11, -7, -3, 1, -45, -63, -1, -41, -55, -48, -45, -44, -41, -39, -38, -35, -39, -42, -45, -49, -51, -55, --54, -54, -55, -58, -58, 52, 46, 62, 24, -21, -68, 42, -15, -64, -77, -79, -76, -75, -74, -76, -10, 42, -77, -18, 21, -57, 43, 51, 54, 58, 60, 63, 58, 57, 53, 60, 60, 52, 54, 52, 48, 52, 61, 62, -35, 44, 33, 1, 15, 24, -17, 11, -1, 27, 31, 27, 21, 29, 35, 21, -47, 35, 44, 57, 74, 90, 98, 100, 82, 72, 62, 80, 82, 65, 70, -67, 60, 65, 65, 43, 9, 21, 40, -1, -16, 15, -44, -39, -43, 7, 3, 16, 24, 42, 36, 12, -11, 10, 49, 60, -87, 114, 127, 136, 104, 100, 86, 120, 118, 75, 87, 78, 63, 68, 95, 51, 12, 38, 79, -6, -23, 22, -16, -25, -36, -10, 37, 30, 56, 69, 35, 6, -55, -34, 24, 60, 123, 182, 218, 217, 150, 106, 83, 137, 143, 93, 116, 108, 94, 95, -9, -14, -90, -64, -3, 25, 29, -14, -23, -2, 0, 24, 22, 25, -20, -16, 33, 84, 90, 134, 173, 116, 78, -16, -54, --42, 63, 169, 227, 190, 154, 133, 58, 35, 28, 2, 96, 123, 147, 80, -63, -117, -90, -22, 15, 11, -15, -34, -32, 4, --7, -1, -13, 20, 12, 26, 53, 52, 102, 72, 87, 137, 52, -27, -102, -29, 46, 81, 165, 114, -74, 7, -121, -406, -247, --119, -70, 28, 21, -6, -26, -18, 7, 23, 10, -28, -16, 2, 15, 29, 22, 26, 45, 27, 22, 54, 75, 93, 99, 115, -104, 205, 175, 15, 82, 95, 81, 40, 213, 235, 197, 135, 38, 42, 32, 21, 7, 6, -6, -9, -4, 12, 9, 3, 0, --14, -40, -23, 14, 40, 72, 78, 82, 75, 63, 26, -35, -40, -15, 23, 87, 132, 202, 159, 39, -33, -116, -38, -2, -13, --3, 31, 17, 14, 2, -3, -3, 6, -20, -36, -56, -51, -61, -42, -32, -23, 5, 24, 62, 115, 125, 144, 165, 154, 142, -132, 135, 112, 74, 43, 127, 106, 53, 74, 63, 68, 62, 53, 60, 58, 51, 38, 16, -14, -23, -24, -16, -18, -15, -19, -0, 11, 12, 27, 27, 20, 26, 26, 22, 41, 80, 138, 124, 117, 118, 113, 13, -13, -24, -11, -26, -12, 1, 14, -4, --5, -23, -18, -40, -39, -44, -41, -47, -42, -38, -20, -13, -17, -16, -11, -3, 4, 12, 21, 30, 33, 32, 40, 36, 36, -35, 20, -30, -34, -76, -43, -57, -61, -54, -60, -47, -40, -45, -30, -26, -24, -34, -32, -21, -23, -38, -25, -30, -25, -23, --20, -18, -16, -11, -6, 0, 7, 16, 24, 12, -1, -12, -21, -17, -15, -29, -53, -83, -20, -50, -83, -83, -84, -81, -85, --86, -85, -42, -14, -79, -43, -21, -14, -15, -12, -11, -10, -8, -7, -5, -3, -2, -1, 0, 3, -3, -5, -8, -11, -7, --28, -21, -48, 10, 55, 92, -13, 40, 82, 75, 73, 65, 80, 84, 81, 49, 1, 92, 50, 10, -47, -28, -31, -28, -25, --23, -20, -24, -26, -31, -26, -28, -36, -32, -28, -17, -23, -14, -31, 62, -22, 32, 4, -23, 0, -43, -42, -18, -22, -13, --9, 22, 18, 13, -9, 41, -43, -48, -38, -31, -19, -12, -7, -21, -30, -42, -30, -30, -43, -30, -19, 7, -3, -18, -35, -3, -9, 52, -8, -21, 0, -39, -65, -39, -40, 11, -13, 33, 22, 27, 2, -2, -37, -63, -44, -37, -15, -3, 14, -13, --21, -44, -23, -31, -70, -38, -17, 24, 7, 15, -7, 11, -5, 64, -27, -44, 9, -39, -43, -56, 5, 23, 14, 40, 41, -56, -20, -26, -74, -96, -61, -36, 11, 41, 52, -1, -40, -71, -35, -28, -65, -6, 32, 89, 66, -167, -70, -55, -52, 21, -43, 30, 0, -17, -7, -6, 7, 9, 32, -28, -41, 22, 32, 96, 93, 15, 0, -56, -86, -111, -97, -26, 45, 60, 15, --47, -92, -126, -126, -107, -130, -10, 55, 146, 71, -88, -131, -109, -36, 0, 2, -15, -30, -33, -9, -25, -14, -16, 21, 48, -13, -46, -56, -65, -39, 19, 104, 36, -44, -137, -62, 25, 85, 134, 76, -97, -47, -110, -409, -259, -159, -40, 6, 14, 1, --24, -22, 4, 15, 3, -31, -19, -20, 13, 2, 12, -1, -10, 4, -11, -62, -114, -132, -144, -96, -24, -10, -102, -256, -190, --136, -124, 1, 71, 225, 208, 121, 46, 27, 34, 13, 1, 3, -5, -13, -7, 7, 3, 5, -2, -21, -15, -33, -52, -44, --26, -11, 15, 33, 23, -10, -59, -54, -47, -68, -102, -128, -128, -31, -157, -61, -10, -23, -10, -5, -7, 22, 16, -5, -9, --12, -10, -3, -19, -34, -64, -63, -49, -70, -55, -26, -12, 11, 29, 47, 49, 55, 45, 38, 5, -46, -63, -86, -131, -138, -19, 55, 103, 71, 72, 56, 39, 40, 37, 42, 36, 36, 14, -15, -30, -32, -27, -17, -17, -13, -27, -35, -37, -22, -16, --17, -3, 9, 23, 26, 28, 15, 19, 21, 24, 28, -34, -29, -10, -13, 0, 5, 17, 23, 18, 1, -5, -25, -26, -41, --36, -43, -45, -42, -34, -44, -51, -40, -39, -30, -22, -11, -16, -19, -20, -31, -37, -40, -33, -26, -23, -23, -64, -66, -31, --64, -55, -57, -70, -71, -75, -69, -53, -58, -56, -50, -40, -41, -47, -46, -27, -47, -40, -39, -37, -33, -31, -27, -37, -44, --51, -55, -59, -65, -65, -66, -67, -66, -55, -62, -38, -17, 0, -48, -19, -2, 3, 5, 4, 10, 14, 16, -12, -42, 12, --13, -35, -56, -48, -47, -45, -44, -43, -40, -44, -45, -48, -51, -55, -58, -57, -56, -55, -56, -55, 32, 29, 46, -20, -53, --46, -2, -48, -57, -70, -70, -60, -62, -59, -56, -43, -2, -50, -47, -21, 40, 25, 31, 35, 38, 39, 39, 36, 35, 33, -37, 35, 29, 29, 29, 32, 33, 45, 31, -56, 17, 6, -18, -8, 2, -6, -19, -31, -6, 6, 1, 3, 13, 10, 6, --53, 10, 26, 32, 52, 65, 71, 66, 52, 42, 35, 46, 45, 31, 31, 34, 44, 43, 56, 20, -30, -8, 23, -20, -31, -0, -62, -49, -61, -7, -16, -1, 6, 24, 26, 0, -30, -10, 30, 33, 62, 82, 90, 84, 65, 61, 53, 69, 60, 29, -30, 36, 56, 48, 86, 25, -27, 6, 67, -27, -41, 7, -40, -53, -48, -4, 24, 29, 51, 68, 42, 14, -55, -40, 10, -31, 93, 138, 163, 140, 88, 53, 43, 69, 66, 33, 40, 54, 93, 75, -3, -45, -125, -88, -24, 17, 36, 13, -8, -5, --9, -1, 4, 33, -34, -37, 1, 52, 52, 86, 117, 74, 55, -30, -44, -14, 115, 202, 196, 159, 92, 23, -11, -12, 3, --16, 75, 96, 130, 94, -50, -124, -107, -44, -3, 2, -10, -22, -30, -6, -9, 1, -16, 26, 18, 30, 26, 7, 50, 52, -77, 102, 8, -68, -129, -39, 37, 59, 98, 44, -111, -30, -69, -380, -313, -188, -43, -4, -11, 14, -18, -14, 3, 17, 8, --29, -19, -10, -3, 21, 9, 26, 46, 15, 3, 7, 8, 17, 27, 70, 116, 123, 54, -72, -15, 7, -11, 56, 93, 178, -204, 149, 46, 47, 48, 27, 3, 2, -4, -10, -5, 7, 7, 6, 10, -1, -33, -15, 11, 22, 53, 43, 46, 37, 19, --23, -79, -67, -38, 3, -19, -11, 40, 20, -29, -73, -116, -57, -26, -26, -13, 18, -1, -5, -15, -11, -9, -5, -16, -29, --55, -61, -81, -57, -47, -37, -4, 11, 38, 63, 71, 82, 83, 86, 65, 47, 26, 3, -11, -34, 57, 41, 25, 35, 33, -34, 36, 30, 39, 44, 46, 40, 24, -3, -19, -28, -28, -21, -13, -11, 0, 2, -1, 7, 11, 13, 31, 43, 50, 64, -92, 125, 112, 93, 76, 54, 25, 1, -18, 2, -4, 12, 26, 41, 19, 18, -10, -4, -31, -32, -39, -38, -47, -44, -48, --29, -17, -23, -22, -14, -5, 4, 9, 14, 20, 17, 14, 17, 13, 16, 22, 19, -42, -46, -77, -46, -63, -63, -56, -61, --49, -50, -59, -46, -39, -42, -47, -41, -36, -31, -47, -26, -27, -26, -23, -23, -22, -21, -20, -19, -18, -17, -14, -13, -17, --24, -32, -39, -24, -20, -50, -68, -71, -39, -64, -75, -76, -76, -71, -76, -77, -75, -64, -39, -71, -62, -43, -17, -21, -18, --17, -16, -14, -13, -13, -13, -14, -15, -16, -17, -19, -20, -20, -21, -19, 7, 9, -9, 47, 63, 44, 32, 54, 46, 38, -35, 27, 38, 39, 34, 61, 43, 40, 59, 47, -9, 4, 6, 10, 12, 14, 15, 12, 10, 7, 11, 10, 4, 10, 12, -15, 11, 12, 12, 53, 10, 48, 16, -1, 15, -18, -12, 10, 8, 9, 17, 34, 33, 43, 18, 37, 2, -5, 13, 25, -35, 37, 34, 21, 14, 8, 19, 23, 13, 30, 34, 37, 28, 10, 3, 31, 14, 56, 0, -13, 6, -37, -63, -25, -35, -7, -4, 38, 34, 39, 20, 21, -3, -13, 13, 35, 53, 59, 62, 41, 35, 24, 39, 37, 10, 47, 52, 52, 41, 26, -17, 23, 9, 66, -26, -54, -9, -61, -66, -66, -13, 12, 11, 41, 49, 71, 5, -2, -33, -28, 27, 76, 114, 128, 107, -58, 24, 13, 46, 61, 41, 102, 110, 103, 81, -70, -8, -12, -26, 13, 48, 53, 40, 5, -5, -13, -12, -4, 42, -35, --52, 1, 25, 85, 95, 32, 4, -60, -79, -90, -85, 38, 111, 90, 69, 18, -27, -40, -40, -40, -39, -32, 58, 180, 113, --31, -115, -122, -54, -13, 1, -9, -18, -29, -18, -15, 6, 5, 32, 51, 47, 6, 18, 39, 48, 73, 98, 6, -74, -146, --45, 50, 93, 127, 59, -124, -62, -54, -353, -312, -218, -1, -20, -13, 20, -11, -14, 2, 11, 4, -30, -15, -18, 6, 15, -38, 28, 1, -1, -22, -42, -55, -43, -49, -9, 64, -6, -67, -77, 10, 56, 32, 72, 78, 152, 206, 154, 62, 45, 49, -27, 1, 0, -2, -10, -6, 6, 6, 15, 20, 2, 2, -12, -15, 9, 38, 40, 47, 43, 41, 12, -25, -12, -2, -24, --5, 17, 74, 59, 17, 23, -16, -23, -11, -5, -6, 25, 12, -10, -14, -14, -11, -6, -12, -24, -59, -53, -43, -56, -55, --36, -16, 13, 44, 75, 88, 105, 111, 88, 59, 33, 33, 27, 4, 23, 28, 62, 69, 59, 53, 43, 26, 27, 25, 32, -31, 40, 26, 1, -16, -20, -19, -16, -17, -12, -17, -15, -16, 10, 22, 27, 40, 41, 43, 52, 70, 87, 67, 55, 44, -37, 14, 17, 33, 34, 42, 45, 52, 57, 46, 28, 20, -3, -14, -28, -27, -32, -37, -31, -20, -26, -36, -31, -36, -26, --18, -9, 0, 12, 25, 18, 11, 8, 7, 10, 12, 19, -47, -44, -37, -45, -41, -43, -48, -49, -50, -43, -32, -33, -35, --31, -28, -33, -32, -37, -27, -44, -42, -39, -37, -35, -34, -32, -39, -45, -47, -47, -43, -41, -40, -41, -44, -45, -36, -40, --15, -7, -20, -18, -5, -14, -12, -12, -16, -13, -12, -12, -3, -18, -13, -6, -17, -45, -37, -37, -36, -35, -34, -32, -33, --33, -34, -35, -37, -38, -38, -37, -37, -36, -36, -4, -1, 1, -38, -33, 20, -35, -37, 0, -9, -10, -1, 0, 4, 8, --31, -31, 21, -29, -37, -4, -6, -5, 0, 1, 1, 0, -2, -2, -4, -4, -6, -11, -10, -7, 4, -1, 11, -13, -24, --16, -6, -23, -28, -16, -35, -46, -44, -35, -19, -22, -2, 4, -7, -8, -19, -24, -10, -9, 9, 17, 21, 12, 4, -4, --9, -7, -10, -19, -16, -6, 21, 10, 21, -14, -40, -26, 15, -27, -36, -14, -66, -62, -61, -32, -23, -22, 1, 8, 15, --5, -30, -32, -16, -12, 12, 24, 28, 15, 9, 4, 0, -5, -18, -36, -30, -8, 42, 20, 47, -4, -38, -21, 45, -43, --58, -12, -65, -76, -53, -19, 4, 17, 38, 53, 48, 13, -32, -45, -28, -14, 34, 64, 76, 43, 12, -14, -16, -19, -27, --39, -23, 15, 92, 55, -46, -62, -100, -73, -17, 27, 47, 45, 6, -12, -18, -20, -8, 39, -44, -59, -29, -1, 13, 21, -10, -5, -21, -64, -59, -29, 99, 158, 103, 70, -11, -106, -99, -81, -56, -50, 17, 45, 111, 91, -40, -129, -126, -66, -17, -0, -7, -12, -27, -20, -12, 4, -10, 28, 33, 33, -12, -36, -19, 22, 54, 53, -29, -96, -146, -46, 30, 45, 40, -18, --130, -65, -60, -334, -332, -225, 1, -32, -39, 17, -11, -10, 1, 8, 3, -27, -23, -25, -17, 4, 0, 10, 19, -4, -25, --60, -87, -92, -83, -14, 95, -8, -115, -189, -136, -86, -81, 25, -25, 91, 182, 148, 71, 42, 51, 33, 2, 0, -1, -9, --6, -2, 2, 10, 17, 7, -13, -10, -8, -8, 15, 4, 7, 1, -13, -49, -88, -69, -48, -32, -111, -133, -102, -91, -99, --80, -66, -58, -40, -23, -13, 7, -8, -18, -25, -17, -13, -13, -11, -22, -53, -65, -79, -67, -57, -44, -17, 1, 15, 18, -24, 27, 12, 16, -14, -45, -80, -101, -106, -109, -26, -20, 15, 8, 16, 10, 12, 10, 16, 25, 30, 35, 25, 5, -14, --28, -36, -25, -17, -10, -10, -13, -18, -10, 0, 11, 36, 56, 73, 77, 82, 78, 71, 48, 18, -13, 28, 17, 6, 19, -26, 36, 47, 58, 42, 36, 14, 8, -12, -21, -27, -31, -41, -40, -45, -38, -30, -31, -29, -21, -13, -5, -2, 1, 6, --2, -6, -9, -8, -3, 10, 18, -50, -51, -50, -43, -52, -49, -48, -51, -49, -55, -60, -58, -53, -58, -53, -46, -50, -41, --44, -32, -27, -28, -26, -26, -26, -24, -29, -34, -40, -45, -49, -54, -49, -49, -50, -53, -36, -34, -56, -55, -33, -51, -52, --37, -38, -38, -34, -37, -37, -35, -60, -56, -35, -56, -54, -32, -34, -33, -31, -30, -29, -28, -30, -32, -34, -36, -39, -43, --42, -41, -39, -37, -40, 39, 35, 37, 47, 25, -23, 49, 25, -17, -26, -28, -30, -28, -27, -31, 29, 52, -28, 25, 45, -34, 33, 39, 44, 46, 46, 45, 43, 43, 42, 43, 43, 40, 44, 44, 41, 40, 40, 47, 8, 33, 38, 11, 11, 16, -2, 6, 14, 21, 21, 25, 28, 34, 47, 32, 4, 36, 37, 55, 73, 81, 80, 68, 59, 53, 53, 59, 62, 57, 70, -69, 58, 53, 44, 36, 30, 22, 37, 0, -13, 2, -44, -55, -28, -23, -8, -2, 26, 35, 36, 26, 19, 18, 37, 59, -93, 107, 109, 95, 85, 81, 82, 84, 84, 70, 98, 93, 73, 65, 48, 36, 14, 15, 51, -27, -58, -25, -74, -82, -59, --29, -2, 9, 40, 56, 62, 30, 6, 4, 42, 94, 162, 191, 192, 144, 107, 81, 89, 103, 113, 107, 151, 142, 107, 82, -49, 33, -1, -10, -1, 47, 71, 72, 21, -6, -18, -22, -10, 45, -39, -57, -28, 6, 34, 55, 45, 11, -38, -62, -58, --53, 105, 174, 127, 121, 78, 27, 32, 34, 20, 51, -16, 57, 163, 125, 13, -106, -132, -70, -19, 3, -5, -8, -24, -25, --3, 23, 17, 37, 41, 69, 56, 73, 119, 122, 111, 68, -30, -98, -135, -20, 65, 77, 84, 15, -130, -62, -39, -282, -324, --234, 20, -36, -39, 20, -5, -6, 1, 7, 3, -24, -16, -17, -9, 19, 38, 35, 15, -6, -31, -17, 5, 36, 47, 86, -154, 21, -22, 45, 133, 177, 155, 84, 70, 54, 170, 167, 83, 54, 50, 41, 5, 0, 0, -6, -5, 0, 7, 20, 33, -21, 7, 6, 26, 54, 87, 78, 64, 36, 39, 15, -8, 4, 18, 17, 72, 128, 220, 111, 131, 55, -46, -34, -20, -10, --3, 20, 2, -11, -17, -14, -10, -7, -5, -16, -46, -45, -50, -43, -48, -42, -17, 12, 49, 86, 104, 123, 137, 111, 89, -86, 91, 90, 88, 118, 24, 38, 11, 28, 23, 23, 16, 13, 17, 22, 25, 36, 31, 14, -2, -10, -17, -20, -20, -17, --5, 9, 10, 38, 53, 61, 77, 76, 73, 83, 107, 144, 112, 87, 58, 34, 65, 57, 56, 63, 62, 65, 67, 73, 57, -48, 35, 21, -2, -10, -17, -20, -31, -25, -18, -13, -17, -21, -26, -19, -12, -5, 14, 35, 57, 57, 53, 54, 47, 48, -52, 61, -25, -21, -45, -22, -27, -29, -23, -24, -22, -21, -23, -19, -23, -24, -28, -29, -21, -27, -33, -32, -35, -30, -29, --27, -27, -27, -29, -30, -28, -24, -16, -8, -8, -10, -15, -20, -14, -12, -8, -20, -49, -2, -14, -39, -42, -45, -48, -51, --53, -55, -20, -10, -51, -21, -13, -24, -22, -21, -21, -20, -20, -19, -17, -15, -15, -13, -13, -11, -14, -14, -14, -12, -16, --25, -17, -33, -17, 16, 69, -32, 5, 52, 48, 46, 48, 54, 58, 59, 11, -23, 73, 15, -16, -35, -23, -26, -21, -20, --20, -22, -23, -23, -24, -27, -29, -32, -28, -24, -12, -19, -13, -33, 27, -28, 0, -11, -31, -21, -47, -50, -32, -38, -27, --25, 6, 7, -3, -6, 27, -35, -31, -26, -15, -9, -8, -19, -22, -28, -30, -34, -37, -40, -30, -17, 10, -7, -7, -27, --17, -21, 17, -19, -28, -23, -55, -69, -47, -51, -19, -34, 9, 4, 9, 0, -8, -33, -43, -32, -14, -5, -5, -19, -18, --22, -24, -44, -55, -63, -39, -13, 35, 7, 5, -17, -21, -30, 21, -45, -66, -33, -84, -91, -55, -32, -15, -2, 26, 36, -51, 13, 6, -31, -43, -22, 12, 31, 31, -6, -21, -40, -35, -58, -62, -60, -18, 26, 92, 43, -53, -36, -24, -21, 7, -49, 65, 76, 21, -12, -19, -27, -14, 43, -44, -71, -49, -47, -16, -32, -79, -74, -105, -98, -80, -60, 58, 93, 15, -6, --76, -162, -125, -101, -88, -47, -48, 0, 99, 84, -18, -123, -144, -80, -25, 2, -4, -5, -23, -31, -11, 10, 5, 29, 49, -45, -20, -31, -36, 23, 43, 11, -54, -109, -141, -35, 38, 47, 9, -53, -129, -86, -68, -262, -297, -222, 25, -44, -49, 7, --8, -6, 0, 3, 0, -22, -24, -36, -23, -11, 0, -8, -16, -22, -51, -100, -136, -144, -132, -59, 70, -112, -224, -225, -159, --81, -50, -6, -67, 12, 139, 135, 92, 32, 39, 36, 5, 1, 3, -6, -7, -9, 0, 15, 25, 15, 13, -2, -15, -16, --1, -5, -7, -15, -19, -43, -55, -42, -34, -52, -105, -125, -107, -94, -89, -35, -2, -41, -38, -11, -6, 1, -6, -20, -23, --18, -13, -13, -5, -14, -43, -58, -61, -65, -59, -42, -27, -3, 10, 7, 14, 14, -5, -13, -47, -83, -112, -125, -129, -100, --77, -48, 10, -3, 11, 1, -2, 0, 0, 8, 11, 25, 22, 12, -7, -20, -33, -27, -25, -16, -20, -21, -22, -5, 11, -24, 49, 68, 87, 81, 69, 38, 34, 13, -22, -52, 35, 39, 42, 42, 56, 57, 61, 65, 58, 48, 39, 21, 10, -4, --11, -21, -31, -30, -30, -37, -39, -35, -34, -27, -21, -14, -9, -4, 5, -3, -5, -10, -5, 1, 14, 29, -43, -42, -17, --32, -29, -27, -33, -32, -41, -47, -46, -54, -55, -59, -48, -44, -50, -44, -33, -38, -30, -30, -29, -28, -27, -26, -33, -41, --49, -55, -60, -66, -58, -52, -49, -48, -38, -40, -38, -23, 2, -41, -22, 2, 1, 1, -1, 0, 0, -1, -34, -51, -2, --31, -44, -42, -41, -41, -39, -39, -39, -37, -40, -42, -44, -45, -47, -51, -48, -47, -44, -42, -50, 42, 38, 53, 15, -22, --53, 28, -18, -54, -62, -63, -58, -61, -60, -60, -16, 26, -56, -18, 12, 47, 36, 43, 48, 49, 49, 46, 46, 46, 47, -45, 44, 43, 46, 46, 43, 43, 44, 47, -34, 29, 8, -5, 5, 0, 3, 0, -6, 10, 12, 9, 11, 21, 26, 26, --25, 38, 48, 59, 78, 85, 83, 66, 62, 57, 61, 58, 58, 54, 63, 63, 56, 49, 55, 42, 5, 11, 8, -8, -18, --15, -53, -51, -44, -21, -25, -13, 7, 22, 18, 16, 1, 15, 52, 62, 97, 108, 107, 81, 83, 81, 92, 75, 71, 67, -84, 83, 71, 61, 52, 30, -12, 2, 21, -30, -57, -42, -83, -91, -48, -40, -16, 0, 34, 53, 41, 42, 5, 20, 71, -102, 168, 189, 183, 124, 104, 86, 109, 90, 87, 90, 115, 114, 97, 63, 117, 42, -5, 1, -6, 45, 81, 91, 32, -5, --15, -23, -12, 42, -40, -58, -57, -26, -34, -17, 18, -9, -35, -56, -38, -22, 136, 187, 121, 118, 77, 19, 42, 49, 31, -90, -1, 37, 105, 103, 33, -104, -140, -81, -24, 4, -2, -1, -20, -28, 5, 29, 19, 33, 29, 73, 74, 82, 126, 139, -108, 20, -66, -114, -113, 3, 66, 47, 15, -46, -123, -60, -53, -204, -283, -207, 10, -38, -49, 3, -5, -1, -1, 3, 2, --17, -21, -23, -26, 8, 14, 14, 16, -14, -40, -19, 12, 41, 74, 119, 181, 15, -33, 44, 120, 169, 175, 44, 39, -22, -110, 145, 91, 42, 35, 43, 9, 2, 4, -2, -5, -8, 5, 20, 36, 31, 9, 18, 48, 66, 91, 78, 51, 12, 13, --8, -15, -10, 8, 25, 84, 137, 208, 89, 126, 33, -61, -44, -29, -13, -1, 4, -7, -10, -17, -14, -10, -7, 0, -9, --29, -41, -60, -39, -42, -42, -18, 6, 37, 64, 80, 90, 98, 78, 60, 61, 58, 55, 68, 100, -11, -17, -41, -10, -6, -1, 6, 1, 9, 11, 14, 24, 27, 21, 6, -7, -20, -27, -25, -23, -1, 17, 22, 45, 60, 70, 90, 96, 97, 101, -114, 139, 111, 81, 41, 2, 88, 73, 59, 67, 61, 66, 65, 70, 56, 56, 42, 39, 12, 9, -6, -11, -27, -22, -23, --11, -7, -16, -19, -14, -9, -5, 15, 35, 56, 61, 63, 68, 61, 62, 70, 77, -7, -5, -42, -6, -18, -19, -9, -11, --9, -14, -27, -22, -24, -31, -37, -32, -24, -24, -39, -23, -26, -22, -20, -20, -20, -21, -17, -15, -11, -8, -1, 7, 8, -7, 2, -4, -3, 3, -16, -35, -56, -4, -29, -50, -55, -59, -59, -66, -70, -74, -42, -18, -67, -41, -23, -11, -14, -13, --13, -13, -12, -12, -10, -8, -6, -4, -2, 0, -2, -3, -2, -1, -9, -16, -10, -29, 19, 50, 65, 0, 39, 58, 57, -55, 49, 58, 60, 57, 43, 9, 67, 47, 20, -30, -14, -16, -12, -11, -11, -13, -13, -13, -13, -17, -18, -20, -14, -10, --3, -11, -12, -17, 52, -14, 12, 4, -16, -15, -35, -29, -8, -17, -15, -12, 17, 16, 15, 8, 49, -13, -17, -7, 1, -6, 3, -9, -11, -14, -10, -19, -20, -21, -3, 7, 18, 1, -10, -10, 16, -1, 17, -5, -13, -27, -40, -67, -35, -54, --13, -34, 18, 9, 9, 12, 16, -12, -30, -11, 5, 14, 13, -2, 2, -2, 3, -25, -31, -34, 6, 24, 41, 17, -15, --8, 2, -22, -1, -37, -64, -55, -93, -95, -55, -42, -28, -21, 19, 26, 45, 20, 36, 1, -13, 21, 50, 64, 55, 14, -4, -8, 7, -25, -27, -18, 46, 75, 89, 41, 3, 25, 57, 38, 31, 69, 84, 98, 38, -3, -10, -21, -13, 42, -37, --68, -63, -71, -38, -59, -109, -103, -148, -109, -85, -74, 36, 56, -20, -26, -66, -115, -71, -55, -65, 7, -83, -21, 87, 76, -17, -106, -148, -84, -30, 1, -2, 0, -19, -34, -6, 19, 22, 29, 53, 63, 14, 24, 18, 62, 51, -11, -72, -112, -115, --7, 55, 51, -3, -65, -116, -87, -79, -175, -227, -187, 12, -38, -38, -10, -5, 0, -1, 2, 1, -15, -22, -39, -24, -17, -3, -20, -36, -33, -64, -94, -112, -110, -82, -27, 68, -138, -212, -126, -53, 26, 69, -15, -18, -27, 81, 104, 90, 18, 18, -31, 8, 1, 4, -1, -7, -12, 0, 20, 32, 23, 32, 12, 3, 10, 18, 21, 10, -11, -6, -17, -8, -7, -4, -36, --5, 8, 17, 6, 1, 33, 35, -18, -21, 2, 2, -2, -2, -12, -12, -15, -11, -8, 1, -6, -27, -41, -38, -52, -49, --36, -28, 0, 18, 26, 34, 35, 26, 0, -28, -56, -65, -66, -63, -11, -81, -47, -4, -7, 5, -1, -6, -3, -5, -2, --3, 14, 18, 17, 3, -7, -21, -27, -31, -25, -24, -16, -8, 18, 37, 50, 70, 81, 90, 80, 61, 31, 18, 1, -29, --54, 47, 58, 71, 62, 73, 68, 65, 62, 62, 53, 56, 34, 28, 14, 5, -9, -21, -18, -13, -24, -33, -29, -33, -27, --23, -19, -8, 4, 19, 18, 20, 19, 22, 26, 34, 46, -18, -14, 5, -12, -6, -6, -13, -11, -23, -28, -25, -35, -41, --43, -35, -35, -37, -38, -25, -39, -34, -32, -30, -28, -27, -27, -32, -36, -39, -41, -42, -41, -35, -28, -24, -21, -26, -27, --10, 4, 10, -16, 5, 15, 13, 12, 7, 8, 8, 5, -8, -29, 4, -8, -24, -41, -37, -38, -37, -37, -37, -36, -37, --36, -37, -36, -36, -37, -35, -34, -32, -29, -42, 18, 18, 31, -19, -40, -29, -9, -37, -41, -45, -46, -38, -41, -39, -37, --36, -11, -29, -35, -20, 25, 15, 19, 23, 24, 24, 19, 20, 21, 24, 18, 16, 15, 18, 20, 23, 20, 23, 16, -40, -3, -20, -18, -12, -22, -13, -19, -30, -15, -8, -16, -5, 5, -2, 9, -24, 14, 27, 30, 44, 50, 48, 30, 30, 27, -34, 21, 17, 14, 23, 28, 33, 23, 37, 21, -19, -8, -14, -15, -22, -36, -57, -53, -60, -30, -34, -32, -8, 2, -3, -2, -15, -1, 27, 29, 55, 63, 61, 32, 42, 41, 56, 21, 12, 13, 28, 39, 53, 34, 31, 8, -33, -21, -14, -34, --54, -60, -85, -91, -42, -44, -28, -17, 23, 37, 19, 38, 10, 21, 54, 64, 109, 124, 113, 57, 52, 45, 74, 26, 9, -14, 38, 60, 79, 35, 116, 36, 4, 16, 9, 51, 84, 96, 42, 3, -5, -15, -9, 36, -34, -55, -79, -65, -88, -87, --50, -59, -68, -69, -39, -8, 112, 136, 61, 54, 18, -38, -3, 11, 1, 77, -9, -1, 38, 62, 34, -100, -138, -82, -28, -0, -1, 1, -17, -28, 4, 24, 15, 25, 26, 64, 60, 56, 75, 102, 68, -27, -92, -119, -89, 17, 56, 20, -47, -98, --107, -64, -83, -135, -206, -158, -23, -28, -37, -19, -4, 2, -2, 1, 3, -10, -24, -32, -36, -12, -17, -22, -4, -27, -52, --47, -33, -24, 31, 81, 134, -41, -96, -27, 19, 72, 120, -20, 16, -39, 43, 82, 74, 16, 10, 30, 9, 2, 4, 1, --6, -12, 1, 16, 33, 32, 15, 23, 44, 46, 54, 45, 21, -15, -19, -36, -31, -33, -12, 12, 48, 69, 79, 32, 39, --4, -37, -37, -26, -11, -1, -11, -10, -7, -10, -11, -9, -7, 3, -2, -13, -36, -60, -42, -37, -36, -19, -2, 16, 25, -30, 28, 21, 8, -10, -19, -36, -40, -18, 13, -58, -72, -64, -39, -25, -17, -5, -7, -1, -2, 1, 8, 16, 21, 9, --6, -23, -31, -30, -28, -10, 6, 15, 31, 47, 59, 82, 97, 104, 96, 86, 74, 57, 32, -5, -43, 72, 63, 47, 52, -49, 52, 51, 53, 47, 54, 45, 47, 26, 24, 5, -4, -23, -20, -26, -16, -9, -17, -18, -15, -11, -10, 5, 17, 32, -38, 44, 51, 48, 49, 58, 62, 5, 6, -18, 5, -8, -7, -2, -4, -5, -17, -32, -31, -32, -40, -42, -34, -32, -27, --39, -23, -22, -20, -18, -19, -18, -19, -14, -12, -9, -7, -5, -1, 2, 5, 6, 4, -5, 2, -25, -36, -34, -16, -33, --35, -40, -43, -42, -48, -52, -55, -50, -33, -50, -48, -35, -14, -19, -18, -18, -18, -17, -18, -16, -15, -13, -11, -9, -8, --8, -8, -7, -5, -19, 11, 11, 4, 41, 45, 15, 31, 40, 18, 18, 15, 8, 14, 15, 10, 41, 34, 15, 42, 39, -2, 10, 12, 15, 17, 17, 13, 14, 14, 17, 11, 11, 9, 17, 19, 18, 14, 8, 16, 34, 9, 14, 11, 2, -8, --10, -1, 8, 8, 4, 3, 19, 21, 28, 22, 35, 21, 17, 31, 37, 42, 38, 23, 22, 21, 30, 18, 18, 17, 38, -42, 34, 22, 11, 22, 34, 16, 9, 6, -3, -31, -32, -56, -36, -43, -14, -30, 17, 13, 8, 18, 26, 15, 11, 30, -48, 59, 57, 38, 42, 40, 54, 22, 20, 19, 64, 68, 51, 36, -9, 11, 10, -11, -20, -24, -52, -73, -87, -87, -51, --44, -32, -34, 15, 21, 30, 31, 47, 36, 44, 81, 114, 127, 111, 61, 52, 49, 78, 39, 36, 42, 109, 117, 80, 40, -95, 86, 101, 75, 45, 77, 95, 102, 51, 11, 3, -8, -7, 35, -23, -52, -72, -76, -62, -70, -90, -96, -139, -96, -67, --51, 46, 58, -3, 1, -6, -17, 15, 21, -4, 83, -73, -20, 62, 63, 50, -83, -134, -77, -31, -3, -3, 2, -15, -31, -1, 26, 30, 25, 43, 75, 66, 90, 95, 106, 61, -22, -85, -109, -79, 26, 69, 47, -14, -71, -98, -72, -87, -96, -155, --139, -30, -19, -15, -23, 0, 4, -1, 1, 5, -6, -18, -33, -25, -15, 1, -25, -36, -36, -62, -57, -43, -29, 26, 56, -84, -101, -121, 30, 91, 148, 197, -12, 73, -11, 20, 49, 58, 6, -1, 19, 7, -1, 1, 1, -5, -10, 2, 21, 37, -32, 38, 28, 36, 48, 51, 54, 35, 1, 8, 2, 20, 12, 22, 14, 114, 156, 156, 122, 101, 77, 33, 1, 1, 8, -5, -4, 0, -3, -2, -7, -7, -3, 6, 2, -8, -20, -23, -33, -33, -27, -21, 4, 27, 49, 54, 56, 59, 24, 5, --4, 4, 16, 31, 89, -51, -37, -32, -17, -9, -4, -6, -3, -4, -5, -8, 3, 12, 19, 12, 5, -10, -26, -34, -31, --21, -4, 11, 41, 61, 72, 86, 89, 86, 74, 59, 43, 19, 3, -18, -35, 54, 62, 73, 64, 66, 61, 53, 47, 51, -50, 59, 45, 37, 30, 14, 1, -13, -9, -2, -8, -17, -18, -25, -21, -19, -17, 1, 19, 39, 44, 51, 56, 53, 52, -52, 56, 16, 21, 15, 13, 15, 11, 10, 9, 2, -2, -4, -10, -18, -20, -20, -22, -20, -26, -23, -34, -33, -29, -27, --26, -25, -25, -24, -22, -18, -14, -7, 1, 4, 9, 12, 15, -6, -4, 10, 11, -4, 8, 12, 2, -2, -4, -9, -10, --13, -17, 0, -7, -16, -4, -9, -28, -25, -26, -26, -26, -26, -27, -24, -21, -19, -16, -14, -11, -10, -10, -9, -7, -23, --11, -6, -6, -27, -18, 20, -29, -22, 2, 4, 3, 6, 8, 11, 13, -21, -29, 24, -17, -28, -10, -9, -10, -7, -6, --7, -11, -9, -9, -5, -13, -16, -17, -12, -9, -2, -7, -5, -17, -11, -22, -28, -17, -23, -36, -29, -32, -37, -29, -22, --32, -10, -5, -16, -5, 3, -11, -2, -3, 4, 9, 6, -10, -8, -9, 0, -19, -25, -27, -14, -4, 10, -4, 6, -2, --22, -18, -20, -13, -18, -51, -50, -55, -67, -44, -33, -47, -11, -12, -14, -6, -14, -13, -8, -7, 5, 13, 10, -15, -2, --4, 14, -32, -44, -42, -17, 3, 31, 8, -4, -13, -36, -39, -42, -33, -48, -75, -78, -80, -41, -39, -33, -35, 8, 14, -6, 26, 22, 19, 21, 24, 43, 53, 37, -10, -7, -3, 30, -35, -58, -53, -13, 25, 60, 13, 80, 39, 39, 43, 36, -65, 83, 88, 48, 12, 7, -3, -3, 27, -19, -46, -87, -95, -110, -124, -121, -113, -119, -89, -50, -5, 60, 54, -18, -28, --52, -87, -52, -32, -31, 49, -38, -36, -8, 25, 29, -87, -122, -73, -29, -4, -4, 2, -12, -27, -1, 15, 12, 16, 29, -52, 39, 33, 20, 49, 17, -57, -105, -114, -65, 27, 48, 13, -75, -120, -90, -70, -105, -77, -127, -112, -61, -12, -11, -29, -2, 4, 0, 0, 5, -2, -20, -37, -38, -29, -35, -49, -32, -39, -60, -76, -84, -92, -21, 23, 53, -115, -166, -91, -67, --10, 72, -64, 19, 7, -15, -2, 32, -10, -7, 11, 5, -2, 1, 1, -4, -11, -1, 13, 29, 29, 26, 26, 29, 18, -9, 6, -6, -29, -36, -48, -32, -40, -18, 9, 20, 3, -55, -8, -37, -16, 15, -9, -7, -2, -2, -16, -5, -2, -1, --5, -6, -5, 4, 4, 1, -25, -42, -41, -31, -25, -16, -5, 0, -4, -10, -22, -41, -53, -73, -94, -114, -110, -86, -50, --87, -94, -56, -49, -31, -25, -14, -12, -9, -10, -10, -5, 4, 15, 9, -3, -21, -30, -33, -29, -23, -14, -1, 14, 31, -44, 65, 81, 92, 72, 41, -5, -13, -29, -52, -73, 33, 36, 33, 31, 35, 35, 32, 30, 35, 43, 46, 44, 38, 34, -15, 1, -15, -15, -20, -21, -18, -20, -21, -19, -16, -15, -6, 0, 9, 12, 20, 25, 25, 24, 28, 30, 15, 16, 19, -15, 9, 9, 8, 6, 0, -12, -22, -28, -30, -36, -34, -29, -33, -29, -32, -27, -22, -22, -20, -20, -20, -20, -17, -15, --14, -14, -15, -14, -8, -2, 4, 9, -11, -7, -21, -18, 0, -20, -18, -4, -8, -9, -9, -11, -14, -15, -35, -37, -17, --36, -38, -24, -26, -27, -26, -27, -26, -27, -26, -26, -25, -23, -21, -21, -19, -17, -16, -14, -32, 30, 27, 34, 31, 9, --34, 36, 11, -32, -31, -33, -37, -35, -34, -38, 10, 33, -36, 9, 29, 31, 27, 32, 35, 36, 36, 32, 33, 34, 38, -32, 31, 30, 37, 37, 32, 31, 25, 37, -6, 21, 2, 6, 10, -9, 8, 13, 4, 18, 13, 5, 9, 15, 24, 25, -3, 42, 44, 54, 62, 66, 61, 44, 44, 44, 58, 43, 41, 39, 58, 58, 40, 34, 33, 43, 24, 17, -6, 7, -1, --40, -33, -44, -52, -29, -22, -28, 3, 8, 2, 14, 17, 29, 45, 57, 77, 87, 84, 59, 65, 65, 89, 51, 50, 50, -87, 83, 52, 45, 8, 22, -3, -9, -36, -16, -38, -80, -69, -70, -41, -37, -29, -39, 7, 15, 8, 36, 37, 57, 86, -114, 148, 160, 139, 83, 74, 81, 124, 75, 63, 67, 120, 117, 62, 32, 164, 115, 97, 82, 49, 75, 91, 87, 53, 19, -12, 4, 1, 24, -6, -28, -78, -74, -88, -81, -64, -79, -102, -73, -36, 3, 72, 74, 24, 32, 43, 55, 67, 71, 52, -134, -38, -13, 20, 39, 63, -61, -107, -64, -27, -6, -7, 0, -9, -24, 3, 24, 26, 18, 25, 71, 99, 122, 136, 116, -52, -35, -100, -106, -41, 52, 71, 35, -34, -84, -83, -55, -86, -35, -102, -98, -78, -1, 4, -25, 7, 5, 2, 1, 5, -2, -14, -25, -28, -13, -9, -27, -25, -36, -52, -21, 14, 35, 116, 125, 87, -55, -39, 124, 162, 198, 253, -8, 128, 46, --33, -25, 1, -6, -8, 6, 2, -4, -1, 0, -2, -7, 2, 17, 38, 37, 34, 40, 61, 69, 66, 62, 41, 6, 5, --2, 18, 6, 34, 73, 175, 206, 178, 152, 137, 74, 17, 19, 20, 6, 1, -8, 0, 2, 3, -1, -3, 0, 7, 8, -10, -3, -17, -17, -17, -18, -8, 6, 26, 51, 50, 49, 54, 22, 12, 15, 30, 54, 81, 129, -20, -35, -58, -33, -27, --14, -7, -7, -3, -6, -8, -5, 4, 16, 16, 10, -4, -24, -32, -32, -17, 3, 20, 48, 66, 76, 86, 84, 74, 64, -53, 46, 17, 1, -11, -20, 44, 44, 47, 45, 41, 38, 31, 26, 31, 40, 48, 48, 39, 40, 20, 9, -6, -3, -2, --1, -3, -8, -14, -12, -10, -10, 10, 28, 48, 56, 63, 71, 63, 56, 49, 46, 40, 44, 19, 33, 27, 23, 28, 26, -24, 19, 10, 9, 3, -1, -9, -10, -6, -14, -25, -23, -25, -22, -20, -19, -19, -20, -12, -6, 3, 11, 21, 33, 33, -36, 38, 40, 10, 15, 13, 2, -22, 18, 3, -18, -22, -25, -29, -32, -36, -39, -9, 2, -39, -14, -6, -12, -12, -12, --13, -13, -13, -14, -10, -6, -3, 2, 5, 10, 9, 10, 10, 11, -6, -23, -16, -27, -8, 19, 49, -21, 10, 35, 41, -39, 34, 42, 44, 43, 11, -18, 54, 16, -8, -29, -19, -21, -19, -19, -19, -22, -21, -21, -16, -25, -27, -29, -22, -18, --12, -18, -20, -27, 24, -27, -18, -5, -19, -33, -29, -26, -25, -23, -21, -29, -5, -5, -9, -6, 31, -15, -15, -13, -11, --9, -13, -26, -25, -23, -11, -32, -38, -39, -20, -10, 0, -14, -13, -9, -5, -13, -14, -3, -9, -57, -35, -53, -64, -50, --25, -49, -7, -16, -13, -6, 1, -9, -24, -17, -12, -6, -9, -28, -19, -20, 1, -49, -57, -56, -18, 1, 18, -1, -29, --18, -22, -42, -54, -26, -39, -80, -63, -61, -36, -29, -29, -45, -6, -8, 1, 13, 35, 26, 9, 18, 21, 25, 5, -35, --35, -21, 20, -49, -70, -63, -4, 31, 44, 3, 62, 64, 84, 73, 65, 78, 77, 70, 47, 18, 14, 6, 4, 18, 0, --27, -82, -103, -103, -123, -154, -141, -151, -97, -52, 5, 20, -7, -70, -74, -79, -80, -60, -39, -24, 48, -65, -51, -22, 3, -31, -63, -96, -56, -23, -6, -7, -1, -6, -23, -5, 9, 13, 9, 31, 45, 33, 37, 9, 18, -16, -66, -108, -102, -36, -38, 48, 23, -70, -114, -77, -71, -97, -23, -70, -80, -86, 1, 11, -23, 12, 3, 4, 0, 5, 4, -12, -32, -31, -32, --32, -54, -51, -46, -59, -80, -93, -101, -21, 2, -12, -157, -182, -74, -58, -3, 85, -60, 42, 86, -54, -82, -31, -25, -11, --3, 1, -5, -2, -1, -2, -7, -2, 11, 28, 28, 39, 32, 21, 7, -11, -12, -14, -24, -33, -39, -17, -23, 4, 38, -34, -12, -109, -13, -39, 13, 69, 35, 22, 8, -3, -12, 2, 3, 5, 2, -1, -2, 6, 10, 13, -5, -13, -28, -21, --11, -9, -2, -3, -8, -19, -34, -54, -73, -93, -115, -121, -99, -78, -35, -76, -75, -37, -44, -28, -25, -19, -14, -12, -12, --14, -11, -5, 7, 8, 2, -12, -24, -32, -29, -31, -27, -13, 8, 26, 38, 51, 59, 64, 44, 7, -50, -58, -66, -71, --70, -5, 8, 21, 15, 24, 20, 16, 10, 24, 29, 43, 37, 43, 39, 23, 8, -3, -5, -8, -20, -22, -18, -20, -17, --15, -13, -6, -1, 6, 5, 9, 11, 10, 5, -1, 0, 25, 28, 46, 24, 27, 26, 20, 20, 11, 3, 1, -9, -13, --16, -13, -14, -22, -24, -20, -28, -22, -23, -21, -20, -20, -20, -18, -17, -15, -15, -14, -13, -7, 1, 9, 18, -11, -10, --5, 8, 24, -9, 5, 20, 19, 18, 16, 17, 17, 15, -7, -23, 9, -12, -24, -28, -27, -28, -28, -28, -28, -28, -27, --27, -26, -24, -23, -23, -19, -17, -15, -14, -31, 26, 23, 38, 2, -25, -47, 14, -20, -52, -49, -51, -51, -51, -50, -51, --23, 7, -47, -23, 0, 34, 24, 29, 31, 32, 31, 27, 28, 29, 35, 27, 25, 25, 30, 30, 26, 26, 24, 30, -35, -12, -17, -6, 4, -18, 8, 8, -13, 8, 5, -6, -7, 0, 6, 13, -19, 34, 42, 46, 55, 57, 52, 36, 34, 36, -54, 34, 29, 28, 41, 42, 30, 25, 35, 39, 0, 4, -22, 1, -5, -50, -37, -36, -69, -24, -31, -32, -16, -7, -5, -0, -2, 23, 46, 50, 68, 74, 69, 44, 50, 51, 82, 37, 32, 34, 60, 60, 39, 35, 14, 15, -24, -20, -49, -14, --27, -75, -47, -48, -27, -25, -21, -37, -4, 1, -9, 29, 20, 56, 88, 100, 126, 131, 108, 54, 46, 62, 118, 55, 33, -37, 74, 76, 38, 15, 175, 107, 69, 70, 53, 68, 74, 58, 42, 18, 13, 8, 7, 12, 8, -5, -78, -73, -106, -97, --65, -78, -73, -54, -7, 60, 90, 73, 22, 27, 41, 58, 52, 64, 77, 140, -11, -12, -23, 9, 54, -45, -76, -45, -16, --8, -6, -3, -4, -16, 0, 15, 15, 8, 8, 53, 92, 105, 114, 80, 17, -56, -114, -98, -9, 59, 58, 19, -64, -104, --73, -47, -70, 14, -64, -66, -101, 9, 12, -14, 13, 2, 4, 2, 3, 6, -9, -17, -30, -13, -20, -30, -19, -36, -42, --13, 23, 44, 136, 132, 54, -44, -21, 118, 131, 156, 214, -10, 106, 114, -67, -100, -67, -18, -7, -3, -1, -4, -2, -2, --2, -4, 0, 9, 32, 37, 30, 44, 63, 59, 48, 36, 20, -4, -14, -22, -7, -10, 34, 115, 140, 121, 61, 73, 94, -44, 22, 43, 35, 4, -4, -8, 1, 4, 3, 3, 1, 0, 8, 13, 23, 10, -11, -5, -5, -8, 4, 7, 15, 27, -17, 10, 7, -13, -21, -16, -3, 28, 60, 90, -10, -42, -67, -48, -41, -26, -12, -13, -5, -7, -8, -11, -4, 7, 13, -8, -4, -22, -28, -29, -16, -2, 12, 33, 48, 57, 65, 65, 56, 47, 36, 22, -1, -16, -19, -20, 15, 12, 9, 15, -11, 12, 8, 6, 13, 27, 33, 41, 36, 42, 23, 14, 1, 0, -7, -4, 3, -3, -4, -3, 0, 2, 16, 28, 41, -46, 49, 55, 43, 33, 21, 16, 47, 49, 23, 40, 30, 27, 34, 32, 34, 27, 15, 17, 14, 9, -1, -1, 0, -5, --23, -13, -14, -13, -11, -11, -11, -13, -3, 5, 14, 21, 30, 40, 40, 42, 43, 45, 15, 21, 4, -9, -22, 12, -8, --23, -27, -29, -29, -34, -37, -38, -18, -1, -41, -24, -12, 0, -4, -3, -4, -4, -4, -5, -1, 2, 5, 9, 12, 16, -15, 16, 16, 16, 2, -12, -8, -19, 18, 38, 37, 5, 31, 31, 38, 36, 25, 35, 36, 32, 29, 6, 40, 34, 17, --19, -9, -10, -8, -8, -8, -10, -9, -10, -4, -13, -15, -16, -8, -5, -4, -8, -14, -10, 34, -13, -3, 6, -5, -21, --13, -6, -6, -4, -8, -12, 2, 0, 7, 3, 37, 2, -3, 4, 4, 3, -3, -13, -14, -11, 6, -15, -18, -18, 3, -10, 5, -4, -10, 5, 16, 1, -7, 7, 0, -52, -22, -43, -57, -44, -18, -39, -5, -14, -4, 0, 15, 7, -10, 3, -8, 12, 8, -5, -3, -4, 23, -25, -28, -27, 18, 28, 19, 9, -31, -7, -6, -32, -55, -15, -27, -72, -42, -38, -25, --15, -19, -42, -15, -21, -1, 7, 39, 39, 26, 46, 49, 46, 20, -16, -24, -3, 49, -15, -31, -21, 46, 61, 30, 4, -84, 97, 112, 91, 81, 81, 65, 45, 37, 15, 14, 7, 9, 10, 16, -2, -68, -89, -83, -97, -137, -132, -140, -82, -31, -35, 23, -16, -70, -66, -51, -21, -24, -3, 28, 82, -68, -41, -18, -5, 37, -39, -66, -34, -11, -8, -6, -5, -2, -14, --8, 6, 15, 3, 22, 40, 46, 64, 42, 18, -26, -67, -109, -86, -4, 47, 48, 33, -56, -97, -68, -64, -62, 33, -31, --57, -87, 9, 18, -6, 12, 2, 5, 2, 2, 6, -3, -20, -21, -21, -14, -37, -50, -44, -50, -56, -50, -38, 40, 32, --37, -140, -125, 22, 39, 80, 143, -20, 59, 145, -71, -139, -94, -29, -7, -7, -1, -5, -3, -3, -2, -3, -2, 7, 26, -30, 45, 39, 27, 18, -2, -6, -7, -12, -18, -19, 1, 7, 42, 93, 69, 11, -77, 2, 26, 64, 102, 80, 50, 16, --3, -4, 5, 4, 5, 4, 2, 1, 7, 14, 23, 17, 16, -6, -6, 1, 2, 7, 7, 9, -6, -17, -28, -54, -70, --81, -63, -26, -6, 33, -34, -34, -24, -34, -25, -21, -19, -14, -10, -9, -12, -11, -8, 0, 8, 8, -2, -18, -28, -26, --31, -27, -14, 11, 28, 37, 41, 40, 34, 22, -3, -46, -59, -64, -55, -39, -25, -11, 10, 5, 15, 10, 6, -1, 14, -18, 35, 28, 39, 39, 27, 14, 8, 5, 4, -12, -15, -9, -11, -7, -5, 0, 7, 14, 21, 18, 16, 15, 8, -1, --16, -17, 35, 38, 53, 32, 37, 34, 30, 31, 24, 23, 26, 18, 12, 13, 10, 5, -2, -10, -8, -21, -17, -17, -16, --15, -14, -15, -12, -10, -6, -2, 3, 8, 11, 17, 23, 30, 0, -1, 14, 24, 24, 9, 21, 24, 24, 23, 20, 22, -22, 21, 16, 1, 13, 8, -4, -18, -15, -16, -16, -16, -17, -17, -15, -13, -12, -10, -9, -7, -5, -4, -2, -2, -15, -6, 7, 17, -21, -32, -21, -13, -30, -33, -29, -29, -29, -28, -26, -24, -34, -20, -17, -30, -22, 13, 6, 8, 11, 10, -9, 6, 7, 7, 14, 4, 3, 2, 7, 8, 8, 8, 8, 5, -33, -8, -28, -13, -7, -27, -3, -7, -29, -11, -10, --20, -18, -13, -10, -3, -18, 10, 20, 18, 25, 23, 18, 6, 4, 8, 27, 4, -3, -3, 9, 13, 10, 6, 20, 19, --18, -11, -28, -4, -9, -55, -35, -31, -73, -27, -33, -35, -28, -24, -10, -12, -15, 6, 20, 20, 32, 32, 27, 7, 12, -13, 47, -4, -11, -7, 15, 24, 22, 16, 5, 0, -36, -34, -56, -14, -18, -60, -27, -27, -11, -10, -13, -30, -15, -17, --18, 12, 9, 39, 55, 56, 69, 62, 37, -5, -11, 14, 75, 2, -24, -15, 18, 32, 20, -2, 138, 83, 50, 58, 60, -62, 52, 29, 28, 9, 9, 5, 9, 4, 17, 12, -67, -74, -106, -105, -90, -92, -65, -43, 14, 100, 89, 49, -11, -10, --1, 14, -2, 24, 76, 114, -5, -18, -50, -17, 32, -33, -49, -22, -7, -7, -4, -4, -2, -8, -6, 3, 6, -3, -2, -28, 57, 60, 55, 23, -26, -76, -117, -82, 20, 56, 39, 12, -85, -116, -62, -46, -39, 56, -26, -42, -90, 10, 12, 0, -7, 2, 3, 2, 1, 5, -2, -10, -26, -12, -23, -28, -19, -35, -33, -25, -3, 20, 102, 89, -4, -66, -49, 55, 54, -78, 127, -8, 31, 143, -79, -155, -120, -27, -5, -5, -1, -3, -2, -2, -2, -2, -2, 1, 21, 33, 29, 43, 46, 29, -11, -6, -13, -18, -32, -37, -29, -9, 40, 132, 50, -29, -107, -49, 22, 31, 62, 79, 47, 8, -5, -5, 4, 3, 4, -4, 3, 1, 7, 15, 29, 22, 3, 5, 6, 4, 13, 9, 5, 0, -19, -33, -45, -56, -67, -68, -59, -26, 3, 17, --14, -43, -53, -51, -43, -33, -18, -16, -7, -7, -7, -11, -9, -1, 7, 4, -4, -18, -23, -22, -18, -15, -6, 8, 20, -28, 35, 38, 36, 30, 14, -15, -27, -38, -33, -27, -18, -20, -20, -11, -9, -7, -7, -8, 1, 14, 19, 28, 29, 36, -23, 16, 8, 3, -8, -9, 2, 1, 4, 7, 11, 15, 21, 24, 27, 24, 21, 20, 10, -1, -14, -18, 40, 40, 30, -36, 28, 27, 31, 31, 32, 26, 18, 20, 20, 17, 7, 8, 3, 1, -14, -3, -2, -3, -2, -2, -3, -4, 4, 10, -15, 20, 24, 29, 30, 32, 34, 37, 13, 16, -2, -8, -4, 3, -9, -9, -11, -11, -10, -12, -14, -13, -15, -4, -19, --20, -13, 6, 1, 2, 2, 2, 2, 1, 3, 5, 6, 8, 10, 11, 12, 13, 14, 13, 4, 12, 12, 10, 31, 27, --3, 27, 26, -2, 4, 2, -7, -2, -1, -5, 22, 24, -2, 25, 29, 8, 12, 14, 16, 16, 15, 14, 14, 14, 20, -12, 11, 11, 18, 19, 14, 14, 7, 19, 16, 8, 5, 11, 11, -8, 8, 14, 5, 13, 6, 5, 2, 3, 19, 12, -19, 25, 22, 31, 33, 30, 23, 14, 11, 16, 37, 17, 15, 17, 36, 37, 19, 16, 13, 29, 25, 12, -5, 13, 6, --42, -16, -29, -49, -28, -19, -24, -11, -12, 5, 3, 17, 23, 21, 34, 46, 44, 40, 29, 27, 28, 61, 17, 18, 22, -62, 61, 29, 29, -10, 12, 2, -17, -46, -4, -14, -52, -22, -17, -12, -7, -8, -29, -18, -25, -5, 6, 29, 48, 56, -80, 93, 81, 52, 18, 7, 33, 92, 37, 24, 38, 96, 89, 23, 12, 132, 119, 109, 91, 79, 70, 48, 23, 22, 5, -9, 3, 8, 4, 22, 19, -47, -63, -67, -67, -87, -92, -86, -42, 13, 86, 65, 22, -30, -17, 10, 55, 31, 52, 100, -134, -36, -11, -12, -4, 39, -20, -38, -12, -7, -5, -3, -3, -2, -6, -7, 3, 16, -1, 6, 32, 64, 90, 88, 38, --17, -61, -101, -62, 38, 62, 50, 39, -46, -79, -53, -44, -7, 85, 0, -32, -67, 9, 13, 3, 5, 2, 2, 2, 1, -3, 3, -5, -12, -2, 7, -9, -27, -33, -29, -15, 20, 62, 126, 91, -23, -72, -23, 135, 153, 173, 193, 32, 44, 143, --70, -156, -133, -25, -3, -5, -1, -3, -2, -2, -2, -2, -2, 2, 21, 34, 43, 46, 43, 38, 22, 11, 4, 0, -2, -2, 11, 43, 86, 148, 90, 27, -23, 5, 103, 115, 118, 119, 67, 20, -1, 1, 3, 2, 4, 4, 3, 2, 7, 16, -30, 38, 35, 22, 15, 14, 17, 20, 23, 32, 15, 8, 9, -18, -29, -23, 10, 53, 73, 98, 15, 7, -20, -23, -24, --17, -14, -11, -5, -5, -8, -9, -7, -3, 7, 12, 9, -9, -20, -19, -18, -13, -4, 18, 31, 36, 36, 29, 18, 17, -10, -7, -25, -30, -16, 2, -23, -17, -2, 1, 5, 2, -1, -5, 5, 11, 23, 22, 28, 32, 26, 20, 17, 14, 12, -2, 4, 7, 7, 12, 17, 23, 30, 38, 45, 39, 32, 28, 17, 6, -13, -16, 43, 46, 41, 38, 39, 36, 38, 39, -39, 41, 43, 43, 39, 41, 31, 24, 21, 11, 2, -2, -1, 0, 0, 1, 1, 0, 5, 9, 16, 23, 31, 39, 38, -39, 39, 43, 19, 19, 28, 26, 10, 28, 25, 11, 11, 10, 8, 9, 8, 8, 26, 25, 1, 18, 17, 7, 8, 8, -7, 7, 7, 7, 10, 12, 13, 15, 17, 20, 20, 20, 21, 20, 14, -15, -10, -12, -20, -8, 22, -23, -11, 8, 14, -14, 12, 16, 17, 19, -14, -27, 27, -8, -21, -15, -12, -14, -11, -13, -14, -15, -15, -15, -8, -18, -20, -20, -15, -12, --10, -12, -12, -17, -3, -22, -23, -9, -13, -28, -15, -17, -31, -24, -21, -24, -18, -17, -13, -12, 5, -12, -7, -9, -6, --12, -17, -23, -24, -20, -1, -25, -30, -29, -16, -10, -7, -12, -2, 0, -15, -16, -21, -3, -7, -48, -24, -27, -55, -30, --27, -31, -29, -33, -8, -15, -12, -8, -11, -9, -3, -10, -14, -25, -21, -21, 11, -40, -47, -40, -16, -1, 7, 0, -14, --12, -28, -39, -52, -11, -11, -39, -13, -9, -4, -3, -5, -20, -20, -31, -14, -4, 8, 20, 15, 15, 15, -5, -31, -55, --56, -25, 30, -41, -64, -49, -10, 9, 5, -11, 85, 63, 55, 57, 66, 55, 31, 12, 13, 2, 5, 1, 7, 0, 20, -21, -43, -70, -85, -96, -115, -104, -72, -35, 27, 113, 68, 9, -54, -54, -48, -30, -50, -13, 67, 86, -22, -20, -47, -28, -12, -21, -25, -5, -5, -3, -2, -2, -2, -3, -8, -6, 4, -9, -3, 6, 18, 22, 3, -23, -59, -91, -111, -60, 44, -45, 20, 7, -94, -117, -57, -51, -9, 88, 19, -17, -56, 5, 10, 2, 3, 2, 1, 2, 1, 2, 3, -3, -14, -7, --10, -17, -25, -34, -30, -44, -32, 0, 52, 26, -67, -94, -77, 5, 3, 25, 47, -6, -66, 106, -72, -168, -139, -31, -2, --3, -1, -2, -1, -2, -2, -1, -3, -3, 10, 27, 35, 38, 22, -1, -24, -40, -43, -35, -44, -41, -39, 13, 56, 117, --41, -153, -223, -147, -25, 54, 127, 120, 56, 18, -2, 1, 3, 2, 3, 3, 3, 1, 5, 15, 30, 34, 27, 17, 15, -15, 16, 12, 0, -16, -41, -59, -75, -83, -96, -102, -90, -61, -42, -38, -21, -31, -19, -35, -30, -26, -16, -12, -5, -4, --6, -7, -8, -5, 2, 4, 0, -9, -15, -15, -21, -25, -23, -14, -6, 0, 5, 11, 14, 11, -6, -45, -45, -50, -40, --29, -42, -38, -29, -24, -15, -14, -12, -12, -2, 5, 13, 14, 23, 26, 23, 18, 17, 10, 1, -9, -1, 5, 10, 15, -21, 28, 24, 20, 15, 3, -5, -13, -18, -26, -39, -39, 26, 26, 41, 27, 29, 29, 27, 28, 27, 25, 27, 25, 27, -27, 23, 21, 12, 10, 5, 6, 10, 7, 8, 8, 7, 8, 10, 11, 12, 13, 14, 13, 14, 16, 18, 22, 10, 8, -5, 11, 26, 4, 9, 21, 22, 23, 23, 25, 25, 28, 9, 4, 19, 5, 1, 8, 7, 7, 7, 7, 8, 7, 7, -7, 7, 6, 6, 6, 7, 8, 9, 9, 6, 17, 16, 24, 15, -4, -33, 20, 0, -32, -29, -29, -33, -32, -33, -33, --6, 13, -32, -4, 13, 21, 17, 20, 23, 21, 21, 20, 19, 20, 26, 18, 18, 18, 23, 24, 17, 19, 15, 25, -14, -11, -5, 2, 10, -8, 13, 14, -5, 6, 3, 5, -9, -5, 13, 8, -8, 26, 29, 35, 40, 33, 26, 20, 18, 23, -43, 24, 22, 24, 38, 36, 15, 17, 23, 34, 12, 7, -14, 7, 2, -33, -17, -18, -40, -18, -25, -15, -23, -20, 5, --2, 4, 19, 33, 41, 56, 47, 43, 33, 33, 34, 67, 27, 28, 34, 61, 57, 22, 29, 4, 15, -6, -14, -40, -1, --6, -30, -7, -5, -2, -3, -2, -13, -17, -25, -10, 4, 10, 39, 63, 80, 97, 74, 45, 19, 13, 41, 97, 45, 31, -46, 84, 69, 2, 3, 149, 101, 73, 67, 58, 47, 25, 8, 7, 1, 3, 1, 5, 0, 18, 28, -27, -41, -62, -56, --52, -61, -37, -9, 47, 119, 90, 42, -5, 4, 30, 72, 39, 66, 133, 150, -11, 8, -19, -10, 24, -11, -15, -2, -3, --1, -1, -1, -2, -2, -6, -3, 10, -8, -14, 12, 56, 79, 89, 30, -31, -82, -110, -56, 54, 47, 20, 7, -74, -95, --60, -42, 18, 104, 26, -10, -47, 3, 7, 1, 2, 1, 1, 1, 1, 2, 2, 3, -7, 10, 14, 10, -9, -28, -22, -0, 51, 115, 151, 97, -35, -29, 37, 165, 181, 183, 159, 40, -30, 58, -72, -145, -139, -24, -2, -1, -1, -1, -1, -1, --1, -1, -3, -3, 8, 28, 32, 41, 43, 36, 22, 1, -15, -21, -22, -13, -14, 50, 90, 139, 41, -22, -31, -48, 109, -124, 117, 133, 61, 21, -1, 2, 1, 1, 2, 2, 2, 1, 4, 13, 29, 46, 41, 36, 25, 16, 19, 18, 18, 22, -2, -6, -3, -23, -27, -10, 24, 58, 78, 81, 29, 13, -25, -21, -25, -16, -10, -8, -2, -2, -4, -5, -5, -4, 4, -8, 10, -6, -14, -18, -14, -10, -6, 6, 11, 11, 10, 5, -4, 3, 7, 7, -5, -10, 2, 14, -26, -29, -22, -15, --14, -12, -11, -10, -4, 2, 9, 11, 14, 19, 20, 19, 19, 15, 10, 6, 12, 14, 16, 21, 27, 34, 36, 39, 40, -32, 22, 16, 6, -4, -19, -22, 30, 31, 23, 29, 29, 27, 32, 33, 36, 40, 41, 45, 46, 48, 37, 31, 30, 23, -11, 12, 10, 11, 11, 11, 10, 9, 14, 18, 24, 30, 37, 43, 39, 36, 33, 33, 23, 23, 23, 16, 2, 27, 16, -3, 3, 3, 2, 2, 1, 2, 20, 29, -2, 15, 22, 21, 20, 20, 20, 20, 21, 20, 22, 24, 25, 26, 27, 29, -27, 27, 27, 25, 27, -22, -16, -24, -6, 14, 32, -16, 9, 25, 31, 30, 26, 30, 30, 32, 5, -17, 38, 11, -7, --26, -18, -20, -18, -21, -21, -21, -21, -21, -15, -24, -25, -25, -19, -16, -15, -17, -18, -20, 17, -22, -13, -3, -11, -21, --16, -16, -23, -25, -23, -16, -15, -16, -6, -12, 18, -17, -17, -16, -16, -26, -32, -32, -32, -26, -10, -30, -34, -29, -15, --10, -12, -16, -11, -4, -2, -12, -14, 0, -3, -34, -14, -20, -33, -28, -21, -22, -26, -34, -3, -14, -3, -11, -23, -17, --12, -26, -30, -30, -28, -27, -2, -44, -46, -37, -8, 4, 0, -1, -22, -12, -12, -32, -41, -7, -6, -20, -4, -2, 3, -2, -1, -9, -18, -34, -8, -14, 9, 8, -4, 3, -2, -35, -62, -68, -62, -31, 12, -44, -57, -36, 9, 18, -5, -11, -66, 60, 68, 58, 59, 40, 14, 3, 4, 0, 0, -1, 3, 0, 15, 22, -17, -54, -60, -74, -114, -100, -71, -19, 40, -107, 47, -18, -72, -71, -59, -28, -49, -9, 77, 85, -26, -11, -32, -26, 2, -10, -8, -1, -2, -1, 0, 0, -1, -1, --5, -9, 4, -12, -8, -9, 0, 12, -6, -35, -70, -98, -102, -42, 57, 32, 4, 4, -87, -101, -48, -44, 33, 107, 49, -2, -33, 1, 6, 0, 1, 0, 0, 0, 1, 1, 4, 2, -4, 0, 7, -1, -22, -27, -22, -38, -20, 30, 41, -6, --105, -97, -62, 16, 31, 48, 28, 17, -112, 14, -69, -138, -127, -28, 0, -1, -1, -1, 0, -1, -1, -1, -2, -4, -1, -17, 34, 30, 8, -11, -32, -45, -50, -39, -39, -25, -25, 54, 79, 81, -82, -181, -211, -155, -10, 105, 168, 141, 55, 25, -1, 2, 1, 1, 1, 1, 2, 2, 2, 11, 23, 40, 45, 29, 25, 23, 19, 17, 6, -9, -34, -51, -64, -78, -92, --94, -77, -54, -42, -43, -12, -6, 0, -17, -17, -16, -12, -6, -2, -1, -2, -2, -4, -5, -1, 3, 4, -4, -13, -14, --23, -29, -28, -22, -18, -18, -15, -12, -10, -10, -22, -55, -49, -47, -32, -17, -53, -47, -32, -32, -21, -21, -18, -16, -6, --5, 5, 0, 11, 11, 15, 13, 17, 12, 7, -5, -1, 7, 12, 18, 25, 33, 25, 17, 9, -5, -18, -29, -31, -37, --47, -48, 7, 6, 31, 12, 20, 21, 17, 20, 18, 21, 29, 27, 29, 33, 32, 27, 19, 15, 17, 9, 13, 11, 11, -11, 10, 11, 8, 7, 6, 6, 4, 1, 1, 2, 3, 6, 6, 2, 11, 22, 33, 8, 20, 31, 34, 36, 35, 39, -40, 43, 25, 13, 35, 22, 13, 9, 10, 10, 11, 11, 11, 11, 10, 9, 8, 6, 5, 4, 5, 6, 6, 5, 9, -11, 11, 22, -7, -26, -36, 2, -22, -39, -37, -36, -36, -38, -39, -36, -28, -7, -34, -25, -9, 17, 10, 13, 16, 13, -12, 12, 12, 12, 18, 11, 10, 12, 15, 15, 10, 13, 13, 17, -30, 4, -16, -8, 2, -12, 7, 2, -19, -11, -10, --2, -20, -15, 0, -2, -24, 12, 20, 20, 26, 15, 10, 8, 9, 15, 30, 13, 11, 15, 23, 21, 6, 10, 25, 27, --4, -3, -20, -1, -4, -24, -16, -10, -29, -13, -26, -10, -32, -29, 1, -12, -12, 3, 23, 24, 39, 22, 18, 15, 19, -21, 46, 12, 13, 25, 38, 38, 14, 22, 13, 11, -16, -16, -32, -2, -2, -11, 2, 0, 7, 2, 0, -2, -12, -23, --13, -3, -8, 18, 43, 48, 60, 24, -1, -10, -3, 26, 66, 21, 9, 31, 50, 38, -9, -3, 140, 73, 44, 43, 37, -26, 9, 1, 2, -1, -2, -1, 2, -1, 9, 24, -9, -28, -62, -56, -42, -43, 1, 26, 82, 144, 103, 48, 4, 9, -27, 59, 27, 61, 142, 144, 24, 26, -24, -13, 10, -4, -4, 0, -1, 0, 1, 0, -1, 0, -4, -7, 3, -10, -23, --7, 34, 48, 59, 11, -42, -91, -97, -32, 76, 45, 7, -9, -90, -97, -46, -21, 48, 121, 58, 12, -31, 3, 3, 0, -0, 0, 0, 0, 0, 1, 1, 6, -4, 14, 15, 20, 8, -15, -7, 11, 62, 132, 135, 73, -49, -2, 59, 128, 143, -132, 72, 37, -107, -54, -65, -105, -112, -18, 0, 0, 0, 0, 0, 0, -1, 0, -1, -4, -3, 17, 21, 31, 31, 21, -7, -13, -30, -33, -33, -18, -24, 65, 90, 92, -40, -106, -99, -107, 58, 115, 127, 129, 48, 22, -1, 1, 0, 0, 0, -1, 1, 1, 0, 8, 23, 43, 40, 43, 36, 26, 26, 20, 16, 11, -11, -24, -27, -37, -39, -22, -6, 9, 24, 10, -26, 10, -19, -14, -19, -11, -5, -2, 2, 1, 1, -2, -2, -3, 1, 4, 8, -1, -7, -11, -8, -8, -9, -8, -9, --11, -7, -5, -7, -1, 4, 3, 2, 0, 9, 15, -27, -37, -39, -32, -33, -26, -22, -16, -12, -6, -3, 1, 2, 7, -9, 13, 16, 12, 6, 8, 18, 18, 22, 28, 35, 41, 37, 32, 26, 17, 7, 0, -7, -14, -23, -28, 12, 10, 2, -15, 13, 14, 20, 21, 26, 28, 28, 34, 39, 41, 33, 31, 30, 27, 14, 24, 22, 22, 21, 20, 19, 19, 21, 24, -26, 29, 31, 31, 27, 22, 18, 15, 22, 23, 13, 4, -2, 18, 6, -1, -1, 0, 2, 1, 1, 2, 11, 24, -1, -10, 19, 31, 28, 29, 29, 29, 29, 29, 30, 29, 29, 29, 28, 29, 28, 27, 26, 25, 33, -12, -8, -15, 11, 23, -17, 2, 19, 18, 22, 22, 16, 18, 18, 19, 15, 0, 21, 20, 10, -18, -10, -11, -9, -12, -12, -11, -10, -10, -7, --12, -13, -12, -6, -5, -8, -8, -11, -6, 22, -9, -1, 3, -2, -8, -7, -5, -9, -16, -17, -2, -10, -11, 6, -5, -17, -8, -10, -6, -6, -20, -25, -20, -17, -11, 0, -14, -14, -8, 4, 5, -7, -6, -5, 6, 13, -2, -6, 3, 0, --17, -6, -11, -15, -20, -17, -10, -22, -29, 4, -9, 3, -7, -13, -5, 2, -18, -20, -11, -7, -5, 9, -19, -16, -4, -21, 24, 2, 9, -17, -1, 4, -19, -27, -2, -3, -5, 0, 3, 4, 7, 2, -1, -10, -28, -4, -16, 5, 3, 0, -13, 10, -34, -57, -46, -32, -4, 20, -13, -15, 10, 47, 38, -12, -6, 73, 61, 76, 52, 42, 23, 3, 1, 1, -1, --1, -3, 0, 0, 7, 17, 3, -30, -37, -46, -81, -70, -40, 19, 73, 116, 57, -5, -43, -43, -26, 12, -12, 23, 104, -102, -24, 10, -3, -11, 3, -2, -4, 0, -1, 1, 1, 1, 0, -1, -3, -7, 3, -7, -9, -13, 5, 26, 18, -20, --63, -93, -82, -16, 76, 35, 0, -6, -79, -87, -48, -35, 46, 114, 78, 13, -20, 4, 2, 0, 0, 0, 0, -1, 0, -0, 2, 2, 4, 7, 23, 17, -12, -17, -13, -13, 22, 86, 61, -5, -106, -60, 0, 71, 102, 96, 23, 23, -131, -115, --70, -86, -91, -15, 1, -1, 0, 0, 0, 0, 0, 0, -1, -2, -6, 7, 27, 20, 2, -7, -24, -34, -45, -42, -36, --10, -6, 88, 93, 35, -80, -136, -128, -109, 28, 136, 166, 129, 46, 23, -2, 1, -1, -1, -1, 0, 0, 1, 0, 5, -16, 42, 57, 42, 35, 29, 20, 17, 10, 4, -19, -31, -36, -50, -54, -45, -28, -18, -15, -20, 12, 21, 13, 5, -3, --2, -3, 1, 2, 3, 1, 2, 0, -2, -1, 4, 11, 4, -5, -9, -16, -21, -23, -21, -22, -26, -23, -21, -22, -19, --21, -32, -26, -19, -3, 11, -42, -40, -28, -30, -24, -23, -19, -16, -9, -9, -2, -6, 1, 1, 7, 9, 15, 14, 15, -7, 6, 11, 13, 19, 25, 31, 23, 16, 8, -3, -12, -22, -23, -26, -34, -36, -1, -3, 14, 4, 13, 14, 12, 15, -14, 20, 28, 29, 31, 36, 37, 32, 29, 24, 26, 18, 20, 20, 19, 19, 19, 20, 16, 15, 14, 13, 12, 9, 6, -4, 2, 1, 13, 8, 22, 29, 28, 20, 29, 31, 34, 35, 35, 38, 39, 41, 38, 29, 35, 35, 29, 19, 21, 21, -22, 22, 22, 22, 21, 20, 19, 17, 16, 15, 15, 15, 14, 13, 23, -8, -4, 1, -23, -27, -14, -19, -26, -19, -17, --17, -15, -18, -18, -12, -31, -26, -9, -26, -25, -4, -7, -6, -4, -8, -8, -7, -6, -6, -3, -8, -8, -7, -5, -4, --6, -4, -2, -5, -23, -12, -22, -15, -10, -15, -6, -14, -28, -29, -25, -12, -26, -23, -12, -14, -20, -12, -3, -7, -5, --18, -21, -17, -11, -5, 2, -11, -13, -7, -3, -3, -10, -6, 10, 8, -16, -16, -21, -8, -6, -13, -10, -5, -14, -10, --20, -7, -31, -34, -5, -19, -22, -16, -3, -6, 2, -20, -22, -14, -4, -1, 9, -16, -16, 0, 5, 9, -2, 6, 5, --2, -21, -21, -24, -3, 0, 0, 3, 2, 4, 5, 3, 3, -4, -20, -11, -13, -18, -7, 6, 1, -1, -48, -67, -51, --27, 1, 15, -17, -23, 3, 8, 3, -22, -13, 89, 33, 22, 22, 19, 10, 0, 0, -1, -1, -2, -2, -1, -1, 2, -13, 4, -19, -53, -57, -55, -44, 9, 50, 104, 148, 95, 37, -1, -8, -2, 20, -4, 32, 115, 103, 22, 21, -26, -12, -1, -1, -2, 1, 0, 1, 1, 1, 1, 0, -1, -6, -1, -7, -19, -21, 4, 10, 7, -26, -67, -102, -81, -12, 82, -34, -11, -32, -100, -95, -36, -17, 63, 113, 76, 19, -24, 8, -1, 0, -1, 0, -1, -1, 0, 0, 0, 4, 0, 8, -9, 18, 9, -7, -2, 5, 44, 103, 68, 5, -89, -16, 38, 58, 81, 64, -17, 23, -142, -168, -76, -60, -72, -6, 0, -1, 1, 1, 1, 1, 0, 0, -1, -1, -9, 3, 9, 13, 4, -10, -25, -41, -54, -51, -49, -23, -19, 77, 77, 15, --107, -158, -147, -124, -3, 96, 124, 101, 35, 17, -3, 0, -2, -1, -1, -1, -1, 0, -1, 2, 13, 33, 40, 42, 38, -29, 24, 15, 5, -8, -30, -46, -58, -60, -60, -46, -48, -50, -41, -61, 18, 10, -3, -4, -8, -2, 1, 3, 4, 3, -2, 2, 1, 0, 0, 2, 7, 5, 0, -5, -8, -14, -19, -27, -33, -36, -28, -21, -17, -14, -14, -20, -7, 0, 10, -15, -30, -38, -42, -37, -36, -30, -23, -17, -13, -8, -6, -5, -4, -2, 2, 5, 9, 8, 4, 7, 15, 15, 18, 23, -29, 34, 24, 13, 2, -6, -14, -20, -21, -24, -27, -31, -5, -10, -6, -2, 0, 2, 5, 6, 9, 10, 12, 16, 22, -25, 25, 26, 25, 27, 20, 28, 29, 28, 28, 27, 26, 27, 26, 25, 24, 22, 18, 13, 9, 5, 1, -2, 16, 15, -7, 5, 12, 10, 7, 12, 14, 16, 18, 19, 19, 21, 13, 19, 18, 14, 18, 31, 29, 30, 30, 31, 31, 31, 30, -28, 26, 24, 23, 22, 21, 20, 19, 18, 30, 0, 3, 2, 14, 9, -13, 11, 9, -7, -6, -6, -9, -11, -12, -10, -4, 7, -12, 7, 11, -2, 0, 2, 3, 0, 0, 2, 3, 3, 5, 2, 2, 5, 8, 8, 1, 4, 2, 9, 4, -2, -1, 0, 2, 0, 3, 2, -5, -12, -13, 4, -12, -11, 9, -2, -1, 2, 3, 6, 6, -9, -12, -5, 2, 8, -11, 5, 7, 14, 22, 18, -2, 4, 9, 18, 14, 2, -7, 0, -1, -5, -3, -5, -5, -9, -14, -2, -21, -25, 3, --8, -1, -4, 3, 9, 16, -6, -6, 8, 17, 19, 20, 8, 15, 32, 46, 40, 3, 18, -2, 10, 6, -8, -16, -1, --1, 0, 1, 2, 2, 4, 3, 2, -1, -17, -5, -13, -6, -1, 13, 23, 21, -27, -44, -22, 4, 27, 27, 16, 24, -53, 69, 45, -22, -2, 96, 60, 58, 34, 19, 7, -1, 0, -1, -1, -1, -2, -1, -1, 2, 8, 12, -9, -26, -28, --40, -34, 0, 56, 101, 120, 74, 22, -1, -1, 19, 64, 42, 71, 136, 121, 14, 32, 9, 2, 6, -2, -1, 1, 0, -1, 1, 1, 1, 0, -1, -4, 1, -2, -10, -11, 18, 38, 40, -7, -57, -89, -66, -1, 79, 34, -5, -22, -70, -63, --24, -2, 74, 125, 91, 18, -17, 8, -2, 0, -1, 0, -1, -1, 0, 0, 1, 1, 3, 9, 25, 28, 5, -3, 1, -24, 73, 136, 84, 8, -87, -3, 79, 133, 171, 139, 27, 39, -111, -208, -70, -35, -49, 0, -1, 1, 0, 1, 1, 1, -0, 0, 0, 0, -6, -2, 10, 7, 0, -1, -11, -22, -36, -37, -27, 8, 23, 112, 94, -7, -56, -65, -39, -40, 55, -133, 126, 93, 34, 12, -5, 0, -2, -1, -1, -1, -1, 0, -1, 0, 8, 33, 52, 48, 41, 32, 25, 19, 17, 17, -1, -9, -10, -24, -19, 2, 11, 8, 6, 2, 39, 44, 18, 17, 6, 7, 2, 4, 3, 3, 2, 2, 2, 1, 0, -4, 12, 10, 3, -4, -6, -8, -12, -13, -19, -26, -22, -22, -26, -22, -16, -5, 1, 13, 28, 39, -23, -26, -22, -22, --23, -21, -16, -12, -9, -8, -5, -7, -5, -5, 0, 4, 10, 12, 16, 18, 17, 17, 17, 21, 26, 30, 24, 18, 12, -7, 1, -5, -7, -11, -17, -20, -6, -10, -7, -4, 2, 2, 3, 5, 7, 12, 18, 21, 24, 29, 30, 29, 32, 30, -29, 27, 25, 27, 27, 27, 26, 27, 24, 23, 23, 22, 21, 20, 14, 9, 4, 0, 18, 15, 25, 24, 15, 26, 26, -20, 23, 24, 24, 26, 26, 27, 36, 36, 25, 35, 36, 28, 30, 30, 30, 31, 31, 31, 31, 30, 28, 27, 26, 26, -25, 23, 22, 20, 34, -23, -16, -19, -22, -12, 10, -27, -13, 6, 8, 7, 8, 6, 7, 13, -18, -30, 15, -13, -24, --24, -20, -22, -21, -25, -25, -22, -20, -20, -21, -23, -23, -21, -19, -18, -19, -17, -14, -20, -4, -22, -19, -14, -15, -13, --15, -19, -25, -35, -33, -17, -25, -24, -14, -20, -6, -28, -23, -28, -30, -45, -46, -36, -26, -22, -24, -30, -30, -21, -20, --18, -21, -17, -2, -6, -13, -17, -16, -10, -5, -3, -2, 0, -3, -4, -8, -3, -22, -32, -7, -21, -21, -29, -26, -29, --29, -53, -52, -35, -20, -19, -28, -39, -36, -15, -13, -7, -11, -2, -4, -9, -14, -19, -16, -3, 1, 1, 1, 1, 1, -3, 3, 2, 3, -12, -7, -19, -17, -25, -25, -34, -51, -101, -112, -78, -40, -19, -35, -48, -44, -11, -10, -13, -28, -13, -50, 19, 27, 16, 11, 3, -1, 0, 0, -1, -1, -2, -1, -2, 1, 4, 11, -13, -36, -52, -67, -45, 3, 64, 108, -121, 62, 6, -20, -31, -27, -5, -15, 22, 98, 75, 18, 21, -7, -3, 0, -1, 0, 1, 0, 0, 0, 1, 1, 1, -0, -3, -3, -3, -7, -24, -15, -15, -33, -57, -87, -103, -61, 5, 73, 26, -17, -38, -91, -78, -21, -3, 57, 111, 96, -18, -13, 7, -3, 1, -1, 0, -1, -1, -1, 0, 0, 1, 2, 1, 5, 12, 4, 1, 5, 11, 35, 72, 10, -52, --113, -25, 29, 22, 49, 18, -88, -3, -156, -249, -79, -29, -29, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, -6, --8, -1, -6, -22, -34, -48, -57, -64, -54, -52, -15, 10, 89, 59, -60, -135, -160, -156, -108, -51, 60, 98, 60, 25, 5, --4, 0, -2, -1, -1, -1, -1, -1, 0, 0, 5, 22, 37, 37, 38, 33, 25, 13, -1, -17, -36, -54, -69, -69, -65, --55, -70, -87, -90, -100, 11, 15, 20, 10, 6, 5, 3, 4, 3, 3, 2, 2, 2, 2, 0, 1, 6, 9, 6, 2, --6, -16, -23, -32, -40, -47, -39, -31, -26, -27, -32, -39, -20, -5, 7, 15, -33, -35, -34, -33, -29, -24, -16, -10, -7, --5, -4, -5, -4, -5, -3, -1, 4, 6, 7, 8, 9, 10, 11, 14, 18, 21, 9, -4, -15, -22, -26, -32, -29, -30, --31, -33, -20, -26, -9, -17, -11, -8, -10, -8, -8, -6, -1, 1, 5, 10, 16, 19, 17, 21, 26, 26, 28, 27, 27, -27, 26, 28, 23, 19, 15, 9, 2, -5, -9, -12, -14, -17, 6, 3, 5, 11, 25, 3, 12, 25, 28, 30, 32, 34, -36, 37, 20, 14, 37, 22, 18, 21, 22, 22, 23, 23, 23, 24, 21, 19, 16, 14, 12, 9, 9, 8, 7, 6, 20, -5, 7, 13, 2, -14, -35, 5, -11, -27, -28, -28, -29, -33, -34, -29, -16, -1, -34, -15, -2, 7, 4, 6, 7, 3, -4, 6, 9, 9, 7, 7, 8, 12, 12, 11, 4, 8, 9, 14, -18, 4, -7, -8, 0, 3, 5, 2, -6, -13, -14, -1, -18, -15, 3, -4, -21, 2, 7, 7, 6, -7, -8, 1, 11, 15, 10, 10, 13, 23, 22, 16, -2, 8, 20, 21, -5, 0, -11, -5, -2, 0, -3, -1, -2, 0, -8, 1, -17, -21, -2, -11, -13, -9, 10, 9, 14, -7, -5, 12, 26, -28, 14, 17, 26, 47, 44, 35, 1, 21, 13, 13, -1, -4, -9, 0, 0, 0, 1, 1, 1, 1, 3, 1, 4, -6, --7, -11, -19, -11, 13, 13, 7, -38, -46, -15, 20, 35, 13, 20, 34, 67, 56, 28, -27, -1, 94, 45, 32, 17, 4, -0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 2, 10, 4, -25, -25, -12, -5, 37, 89, 124, 120, 83, 44, 35, 31, -47, 81, 64, 87, 140, 113, 33, 40, 12, 10, 3, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, -3, 1, -9, --9, 20, 28, 31, -14, -57, -80, -43, 17, 80, 38, -4, -34, -65, -50, -12, 14, 72, 111, 86, 14, -11, 5, -3, 1, --1, 0, 0, 0, 0, 0, 0, 1, 1, 6, 13, 27, 21, 15, 21, 61, 108, 149, 84, 11, -64, 38, 119, 136, 173, -126, 4, 30, -85, -260, -82, -9, -16, 3, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, -3, -7, -8, -6, -5, -4, --10, -21, -34, -34, -29, 11, 43, 103, 66, -53, -48, -23, 11, 2, 41, 74, 50, 42, 19, -2, -2, -1, -1, -1, -1, --1, -1, -1, 0, -2, 2, 22, 37, 47, 44, 34, 29, 17, 12, 10, -2, -12, -15, -21, -8, 19, 14, 1, -2, -5, -51, 48, 15, 17, 9, 8, 3, 3, 2, 2, 2, 2, 2, 2, 1, 2, 9, 13, 11, 4, 4, 1, -6, -11, -20, --30, -25, -25, -30, -25, -15, 8, 15, 29, 41, 50, -10, -18, -22, -19, -24, -17, -12, -6, -6, -4, -4, -4, -6, -6, --5, -2, 1, 5, 9, 17, 16, 13, 12, 13, 15, 16, 12, 8, 4, 4, 2, 0, -2, -5, -8, -12, -11, -16, -25, --12, -11, -10, -7, -6, -3, 0, 2, 7, 11, 15, 17, 19, 25, 26, 24, 29, 26, 27, 27, 27, 26, 27, 25, 24, -24, 23, 21, 20, 13, 7, 2, -4, 16, 15, 15, 9, 0, 17, 11, 5, 6, 7, 8, 9, 9, 10, 20, 28, 11, -22, 28, 29, 29, 29, 29, 30, 30, 30, 29, 28, 27, 26, 26, 26, 24, 22, 20, 18, 33, -23, -17, -25, -8, 6, -17, -17, 2, 17, 17, 16, 15, 12, 13, 18, 0, -17, 20, 3, -10, -28, -21, -23, -23, -26, -26, -22, -20, -20, -23, --23, -22, -18, -18, -18, -20, -18, -17, -20, 11, -19, -9, -9, -12, -4, -12, -12, -13, -25, -26, -13, -19, -19, -8, -16, -4, -27, -26, -29, -35, -47, -47, -35, -23, -20, -29, -28, -25, -14, -15, -16, -22, -17, -10, -9, -2, -11, -8, -7, -2, -2, 1, 2, 2, 2, -1, 2, -10, -22, -6, -16, -13, -28, -31, -31, -36, -56, -52, -30, -14, -14, -38, -32, -24, -1, --5, -4, -17, -4, -13, -10, -2, -13, -8, 0, 1, -1, 0, 0, -1, 0, 1, 0, 5, -4, -3, -18, -14, -30, -34, --41, -65, -108, -111, -68, -26, -15, -52, -41, -24, 13, 4, -8, -34, -13, 22, 16, 33, 12, 5, 0, 0, 0, 0, 0, -0, 0, 0, -1, 0, -1, 10, -4, -17, -36, -56, -32, 5, 77, 107, 92, 42, -1, -10, -20, -16, 6, 4, 32, 86, -51, 14, 17, 10, 5, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -2, 0, 3, -13, -14, -15, -37, -60, --80, -78, -27, 27, 67, 26, -13, -37, -64, -45, 3, 16, 62, 103, 89, 11, -5, 3, -2, 0, 0, 0, 0, 0, 0, -0, 0, -1, 3, -2, 6, 12, 7, 16, 20, 35, 50, 61, -13, -70, -108, -18, 36, 27, 58, 20, -83, 0, -113, -254, --79, -10, -4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, -8, -18, -34, -40, -51, -56, -59, -47, -44, --1, 42, 84, 34, -100, -106, -96, -92, -47, -47, 24, 50, 22, 14, -5, 0, -1, 0, 0, 0, -1, -1, -1, -1, -1, --1, 14, 36, 36, 35, 33, 23, 10, -3, -16, -29, -43, -55, -57, -48, -37, -51, -70, -82, -76, 21, 34, 36, 19, 12, -5, 2, 2, 1, 1, 0, 1, 1, 2, 2, 2, 5, 12, 12, 8, -3, -12, -20, -27, -34, -44, -38, -34, -33, -33, --36, -36, -20, -1, 14, 27, -26, -23, -19, -20, -17, -13, -8, -3, -1, 0, 0, -2, -2, -4, -5, -5, -1, 1, 6, -6, 1, 3, 2, 2, 3, 3, -4, -11, -17, -21, -22, -27, -23, -24, -25, -26, -22, -27, -12, -21, -15, -13, -16, -14, --14, -11, -7, -5, -3, 1, 9, 12, 13, 16, 26, 21, 22, 22, 21, 21, 21, 22, 16, 12, 7, 2, -4, -10, -13, --15, -16, -19, 1, -3, 7, 15, 24, 3, 15, 24, 27, 28, 30, 32, 35, 36, 24, 14, 37, 26, 19, 13, 15, 15, -15, 15, 15, 16, 13, 11, 9, 7, 5, 3, 3, 2, 1, 0, 12, -2, 0, 6, -15, -27, -30, -10, -23, -25, -27, --28, -27, -31, -32, -26, -27, -14, -29, -27, -18, 1, -3, -2, -2, -4, -4, -1, 1, 1, -3, -1, 0, 5, 3, 1, --3, 1, 4, 2, -27, -5, -14, -14, -6, 1, 1, -3, -8, -15, -16, -6, -22, -19, -7, -10, -28, -9, -2, -6, -9, --19, -17, -8, 4, 6, -6, -1, 3, 13, 6, 1, -10, -1, 15, 8, -10, -8, -14, -8, -3, 2, -1, 1, 1, 4, -0, 2, -8, -15, -8, -14, -21, -18, 0, -6, -6, -22, -18, -2, 16, 16, -9, 3, 11, 36, 19, 13, -7, 10, 12, -1, -13, -7, -6, 2, 1, 0, 0, 0, -1, -1, 0, 0, 4, 1, -6, -10, -24, -22, -2, -15, -30, -64, -63, -28, -13, 19, -22, -4, 14, 50, 20, -3, -33, -8, 65, 23, 8, 6, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, -2, -0, 4, 8, -21, -27, -6, 8, 53, 102, 127, 107, 76, 48, 45, 38, 41, 54, 50, 73, 118, 78, 47, 34, 7, 9, --1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -3, 2, -2, -6, 8, 2, -6, -39, -64, -68, -23, 25, 60, -28, -10, -43, -58, -37, 8, 31, 55, 97, 77, 9, -5, 2, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 2, -0, 17, 25, 25, 31, 68, 94, 100, 33, -22, -62, 37, 99, 84, 107, 55, -51, 3, -78, -248, -80, 0, -1, 1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, -18, -20, -20, -22, -28, -37, -45, -40, -37, 4, 52, 70, 22, -83, --56, -24, -7, -3, -5, -12, -12, 4, 6, -5, 0, -1, 0, 0, 0, 0, 0, -1, -1, -1, -2, 11, 23, 37, 36, -29, 25, 10, 1, -6, -14, -26, -31, -29, -14, 5, -8, -26, -33, -28, 42, 38, 18, 15, 9, 4, 2, 1, 0, 0, -0, 0, 1, 1, 2, 2, 4, 12, 14, 11, 8, 2, -5, -12, -21, -33, -28, -26, -29, -25, -18, 1, 10, 24, 34, -41, -7, -14, -21, -16, -19, -11, -6, -1, 0, 1, 0, 0, -1, -2, -5, -5, -4, -3, -1, 8, 8, 5, 3, 2, -2, 1, -2, -4, -7, -5, -5, -6, -6, -7, -8, -11, -14, -20, -27, -16, -17, -16, -14, -13, -9, -8, -7, -4, -2, -1, 4, 8, 13, 18, 19, 26, 24, 23, 23, 22, 21, 21, 19, 18, 17, 14, 11, 8, 4, 0, -4, -9, 8, 8, -1, -4, -3, 4, -2, -2, -1, 0, 1, 2, 3, 4, 6, 12, 7, 9, 14, 21, 20, 20, 20, 20, 20, 20, 19, -18, 17, 16, 15, 15, 13, 12, 10, 9, 20, -12, -8, -13, 4, 8, 1, -3, 6, 7, 6, 4, 3, -1, -1, 3, -4, -3, 2, 5, 1, -16, -11, -12, -13, -14, -13, -11, -8, -8, -14, -10, -9, -4, -6, -7, -10, -8, -8, -7, 7, --8, -2, -6, -6, 4, -3, -2, -3, -10, -13, -5, -14, -14, -1, -8, 1, -14, -15, -17, -24, -31, -29, -19, -7, -6, --19, -12, -6, 6, 1, -3, -13, -6, -1, -2, 6, -3, -5, -4, 0, 1, 0, 1, 1, 2, 1, 2, -1, -10, -5, --10, -6, -18, -17, -18, -24, -35, -30, -11, 5, 3, -27, -9, 1, 26, 16, 11, -10, 5, -5, -4, 2, -7, -3, 1, -0, -1, 0, 0, 0, -1, 0, -1, 2, 1, -1, -12, -12, -23, -23, -28, -52, -79, -75, -37, 1, 3, -44, -16, 9, -46, 28, 6, -27, -4, 25, 27, 32, 8, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 4, 4, -4, -15, --23, -3, 24, 88, 104, 71, 38, 13, 14, 12, 17, 32, 36, 56, 91, 51, 15, 21, 21, 5, -2, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 1, -2, 0, 8, -2, -5, -9, -28, -56, -70, -58, -10, 29, 47, 21, -6, -29, -35, -18, -15, 26, 50, 85, 70, 4, -3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -2, 5, 13, 14, 27, 33, -62, 73, 65, -3, -51, -73, 8, 62, 60, 84, 42, -48, 3, -61, -216, -74, 1, 1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 1, 0, 2, -7, -14, -24, -32, -31, -37, -38, -40, -30, -21, 23, 76, 72, 16, -94, -46, -10, 2, 12, -5, --17, -9, -4, 3, -4, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -3, 7, 27, 33, 32, 30, 22, 11, 3, -3, --9, -19, -24, -27, -15, -2, -8, -19, -30, -10, 35, 47, 36, 21, 10, 0, 1, -1, 0, 0, 0, 0, 0, 1, 1, -1, 3, 13, 15, 14, 6, -1, -8, -10, -17, -29, -27, -29, -32, -30, -27, -14, -7, 10, 23, 36, -12, -10, -7, -8, --7, -5, -2, 2, 1, 1, 1, 0, 0, -1, -3, -5, -3, -2, 3, 5, -2, -2, -5, -6, -7, -8, -9, -10, -10, --9, -9, -10, -9, -9, -11, -12, -16, -19, -15, -17, -14, -13, -14, -13, -12, -9, -6, -5, -4, -2, 3, 6, 10, 12, -22, 18, 17, 17, 16, 15, 14, 14, 10, 8, 5, 3, 0, -3, -6, -8, -9, -12, 0, -2, 8, 11, 10, 5, 11, -11, 12, 13, 14, 16, 18, 19, 19, 13, 22, 22, 18, 9, 11, 10, 10, 10, 10, 10, 8, 7, 6, 5, 4, 4, -3, 2, 1, 1, 9, -13, -9, -8, -20, -20, -10, -18, -19, -7, -10, -11, -11, -15, -14, -9, -21, -20, -8, -20, -21, --11, -12, -13, -14, -15, -14, -12, -10, -10, -15, -12, -11, -6, -10, -10, -12, -9, -6, -12, -16, -12, -14, -14, -8, 0, --3, -5, -6, -11, -12, -8, -17, -19, -13, -12, -17, -19, -15, -21, -27, -31, -28, -20, -9, -9, -24, -16, -12, -1, -10, --13, -16, -9, 3, -7, -13, -10, -10, -4, 0, 1, 0, 2, 2, 4, 2, 3, 1, -5, -8, -13, -19, -24, -16, -23, --30, -38, -33, -19, -3, -5, -35, -17, -10, 16, -6, -7, -12, -1, 4, -10, -12, -6, -1, 2, 0, -1, 0, -1, -1, --2, -1, -1, 0, 3, -1, -8, -20, -28, -23, -41, -65, -83, -76, -43, -6, -7, -55, -31, -10, 26, -8, -21, -27, -9, -19, 5, 5, 3, 0, -1, 0, 0, 0, 0, 1, 1, 0, 1, 0, -1, 0, 6, -11, -24, -12, 8, 44, 88, 100, -70, 42, 22, 24, 21, 17, 11, 20, 41, 75, 32, 32, 16, 6, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 1, -1, 0, 3, -6, -12, -29, -47, -67, -71, -54, -6, 28, 40, 18, -11, -40, -45, -23, 20, 31, 40, 73, 55, -2, -3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -6, 7, 22, 32, 41, 67, 69, 45, -13, -47, --54, 24, 59, 29, 36, -8, -79, -10, -74, -189, -65, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, --3, -19, -27, -30, -34, -41, -44, -44, -35, -27, 10, 58, 38, -14, -89, -60, -34, -31, -25, -33, -71, -39, -12, 2, -2, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, -2, 3, 15, 27, 28, 25, 20, 6, -5, -18, -24, -36, -43, -39, -26, --16, -26, -38, -44, -29, 24, 27, 26, 13, 5, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 2, 1, 10, 16, 16, -10, 2, -6, -13, -21, -32, -29, -26, -26, -24, -22, -13, -4, 9, 16, 23, -7, -9, -14, -10, -8, -4, 0, 3, 2, -3, 2, 2, 1, 1, -1, -4, -4, -6, -6, -2, -3, -4, -5, -7, -9, -11, -12, -14, -16, -14, -13, -13, -12, -12, --11, -11, -15, -19, -19, -16, -17, -15, -14, -12, -10, -9, -8, -7, -6, -5, -3, 0, 3, 9, 14, 18, 17, 16, 15, -13, 12, 12, 9, 8, 5, 2, -2, -6, -8, -9, -10, -13, -2, -2, -6, -6, 1, -6, -6, -1, -1, 0, 1, 2, -4, 6, 0, 1, 10, 4, 4, 9, 8, 8, 8, 7, 7, 7, 5, 4, 3, 2, 1, 0, 0, -1, -1, -2, 4, --3, -1, -2, 3, -3, -16, 2, -2, -6, -9, -10, -11, -15, -16, -13, -5, 1, -16, -4, 1, -3, -3, -3, -4, -4, --4, -2, 0, 0, -5, -1, 0, 5, 2, 1, -3, 0, 0, 1, -5, -2, -3, -7, -2, 5, 1, 1, 1, -2, -3, -0, -10, -11, -2, -3, -9, -5, -6, -7, -13, -15, -13, -6, 3, 3, -11, -1, 4, 16, 9, 3, -6, 0, 5, 2, -4, -2, -5, -1, 1, -1, -1, 0, 0, 1, 1, 1, 2, -1, -4, -7, -6, -10, -5, -7, -13, -16, -10, 2, 13, -10, -19, 4, 14, 37, 21, 14, -5, 8, 2, -3, -1, -3, 0, 1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 1, -1, -5, -11, -17, -11, -19, -37, -47, -39, -13, 16, 11, -35, -4, 22, 56, 29, 6, -21, -1, 25, 24, 16, 3, -1, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 5, 1, -3, 6, 19, 40, 82, 86, 48, 29, 20, 29, 36, -38, 37, 47, 60, 80, 40, 23, 18, 15, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 3, -2, -1, -9, -20, -46, -51, -32, 7, 33, 34, 19, -1, -25, -17, 1, 26, 35, 38, 66, 44, -3, -1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 23, 36, 46, 78, 84, 60, 8, -26, -35, 32, 76, 75, 84, -41, -25, 5, -37, -153, -55, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -15, -24, -22, -21, --24, -24, -25, -20, -5, 31, 77, 41, -8, -68, -7, 36, 55, 24, 27, -52, -45, -10, 1, -1, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -2, 2, 18, 30, 27, 23, 17, 8, 2, -2, -3, -9, -6, -9, 5, 20, 25, 22, 18, 40, -34, 42, 28, 15, 1, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 0, 9, 16, 16, 13, 9, 2, 1, -5, --17, -19, -22, -27, -23, -16, 3, 3, 14, 22, 30, 1, 1, -2, 0, -1, 0, 2, 2, 2, 1, 1, 1, 1, 1, -0, -2, -3, -5, -3, 1, -3, -5, -7, -9, -11, -13, -10, -8, -5, -2, 0, 1, 1, 1, 0, 0, -9, -10, -16, --11, -12, -11, -9, -7, -5, -4, -4, -3, -2, -2, -2, 0, 5, 8, 13, 14, 11, 10, 9, 8, 7, 6, 5, 4, -4, 3, 3, 3, 0, -1, -3, -6, 0, 0, 3, 1, -5, 2, 0, -5, -4, -3, -3, -2, -1, 0, 7, 8, 4, -9, 10, 6, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 2, 1, 6, -16, -12, -16, -14, -7, -4, -15, -8, 5, 2, 1, 1, -2, -2, 1, -10, -15, 4, -8, -14, -17, -15, -16, -18, -18, -17, -16, -14, -14, -19, --16, -15, -11, -14, -14, -14, -13, -11, -17, -3, -12, -10, -9, -5, 0, -3, -3, -3, -5, -5, -4, -8, -12, -12, -10, --4, -20, -20, -25, -31, -31, -28, -22, -14, -15, -29, -21, -17, -7, -15, -16, -16, -13, -6, -15, -8, -8, -3, 1, 2, -1, 1, 1, 1, 2, 2, 2, 2, 2, -2, -9, -10, -20, -22, -27, -36, -37, -31, -22, -11, -14, -41, -23, -17, 6, --13, -13, -13, -7, -7, -17, -7, -3, 2, 0, -1, 0, 0, 0, -1, -1, -1, -1, -1, 0, 2, -4, -10, -25, -32, --47, -70, -74, -64, -41, -13, -19, -63, -38, -18, 14, -13, -23, -21, -10, -6, 1, 8, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, 0, 0, 2, 1, -12, -9, 10, 32, 68, 69, 37, 13, 3, 8, 14, 7, -11, 8, 23, 45, -6, 18, 7, 6, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 4, -5, -23, -39, -59, -68, --59, -31, 10, 31, 25, 10, -8, -27, -22, -4, 27, 29, 26, 50, 33, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, -3, 3, 19, 35, 45, 58, 45, 9, -37, -56, -43, 9, 27, 5, -1, -33, -72, -13, -58, -119, --41, 9, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -12, -25, -30, -35, -41, -38, -34, -25, -9, -21, 59, 15, -28, -68, -43, -23, -17, -28, -19, -80, -38, -7, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, --1, -1, 12, 21, 20, 19, 13, 4, -7, -20, -23, -32, -34, -32, -22, -15, -14, -16, -17, 1, 9, 21, 28, 8, 0, --1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, 0, 6, 15, 17, 10, 4, -3, -7, -13, -22, -23, -22, -21, -20, --20, -18, -14, -5, 0, 6, -4, -2, -4, -1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, -2, -6, -7, --8, -10, -9, -10, -12, -14, -15, -16, -17, -17, -16, -13, -13, -10, -9, -8, -5, -13, -14, -10, -13, -12, -10, -7, -6, --5, -5, -4, -4, -4, -4, -3, -3, -3, 1, 9, 8, 8, 6, 5, 4, 3, 2, 1, -1, -3, -6, -9, -12, -12, --12, -12, -12, -7, -8, -6, -3, 3, -8, -5, -1, 0, 0, 1, 2, 3, 5, 0, -4, 10, 3, 0, -1, -1, -1, --2, -2, -2, -2, -4, -4, -5, -6, -6, -7, -7, -7, -7, -7, -5, -1, 0, 2, -5, -12, -19, -3, -10, -11, -13, --14, -14, -17, -18, -17, -12, -4, -20, -11, -5, 1, -2, -1, -3, -2, -1, 0, 1, 0, -4, 0, 1, 5, 2, 1, --2, 0, 1, 0, -13, -1, -6, -6, -1, 4, 2, 2, 2, 2, 1, 2, -3, -6, -5, -2, -13, -3, -4, -6, -10, --9, -6, -3, 4, 2, -9, -1, 4, 13, 5, 1, -4, 0, 5, -2, -4, -3, -2, 1, 1, -1, 0, 0, 0, 0, -0, 0, 1, 2, -1, -4, -6, -7, -2, -6, -10, -8, -4, 1, 9, 6, -16, 3, 10, 30, 11, 7, -3, 4, 3, --7, -6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -9, -12, -9, -20, -32, -30, -21, -8, -12, 4, -31, -6, 14, 42, 15, -2, -14, -2, 18, 15, 3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 2, 1, 3, 19, 30, 46, 66, 63, 32, 21, 20, 29, 40, 37, 19, 34, 44, 55, 23, 24, 15, 4, -2, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -8, -19, -27, -42, -38, -17, 14, 29, 21, -11, -4, -23, -10, 6, 25, 32, 22, 41, 19, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, --1, 9, 25, 35, 46, 68, 64, 35, -1, -18, -11, 35, 60, 53, 44, 10, -24, -1, -31, -92, -27, 11, -3, 1, -1, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -10, -20, -15, -16, -18, -17, -16, -14, 5, 29, 57, 9, -25, -41, --1, 31, 55, 5, 34, -64, -43, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 9, 22, 18, -14, 10, 3, -2, -7, -8, -13, -7, -7, 5, 20, 30, 35, 38, 53, 18, 25, 18, 4, -2, 0, -1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 4, 12, 15, 13, 12, 7, 4, -1, -10, -12, -15, -17, -14, -8, 4, 1, 5, 8, -11, 8, 7, 1, 3, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, -4, -7, -4, -5, -7, -8, -10, --11, -13, -11, -9, -7, -3, 0, 3, 3, 3, 5, 6, -6, -7, -14, -7, -8, -6, -3, -1, 0, 0, 0, 0, 0, -0, -2, -2, -1, 2, 4, 7, 4, 4, 3, 1, 1, -1, 0, 0, 1, 0, 0, 1, -1, -2, -3, -5, -2, -1, --3, -7, -10, -3, -7, -10, -10, -10, -10, -9, -9, -8, -4, 0, -5, -1, 1, 2, 1, 1, 1, 0, 0, -1, 0, -0, 0, 0, 0, 1, 0, 0, 0, -1, 1, -10, -8, -12, -4, 0, 3, -7, -1, 5, 3, 2, 2, 0, 0, 1, --2, -7, 2, 1, -4, -12, -10, -11, -12, -11, -11, -10, -9, -10, -13, -10, -9, -6, -9, -9, -9, -8, -8, -11, 2, --7, -5, -3, -1, -1, -1, -1, -1, -1, -1, -1, -2, -3, -6, -6, 2, -11, -14, -17, -22, -20, -17, -14, -9, -10, --20, -14, -10, -2, -7, -9, -9, -7, -6, -12, -3, -3, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 2, --3, -2, -10, -15, -18, -25, -21, -17, -13, -7, -11, -29, -15, -9, 8, -6, -5, -6, -3, -6, -13, -1, 0, 1, -1, -0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -2, -14, -25, -34, -50, -45, -36, -24, -8, -15, -46, -26, -9, -16, -2, -9, -9, -4, -10, 5, 8, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 5, 2, -3, 17, 27, 47, 42, 16, 1, -2, 5, 16, 10, -12, 7, 16, 26, -1, 8, 5, 3, -3, 2, -1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, -1, 1, -5, -22, -33, -48, -52, -39, -14, 16, 27, 14, 6, -4, -15, -3, 10, -25, 24, 14, 28, 12, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 16, 31, 40, -46, 30, -1, -32, -40, -22, 8, 18, 9, -3, -24, -40, -7, -36, -66, -13, 7, -3, 1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 1, -4, -18, -20, -23, -27, -23, -18, -11, 9, 28, 48, 1, -28, -39, -18, 2, 18, -15, 16, --54, -21, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 7, 16, 13, 12, 5, 1, -5, -13, --15, -19, -15, -16, -7, 2, 12, 19, 23, 36, 1, 16, 19, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 1, 10, 14, 9, 6, 2, 1, -3, -10, -13, -14, -14, -13, -14, -14, -15, -11, -7, -4, 3, 6, 4, 3, -2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, -3, -5, -8, -10, -9, -10, -11, -13, -14, -13, -13, -13, --10, -8, -6, -4, -2, 0, 3, -8, -8, -6, -7, -5, -3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -3, -3, -3, 1, 0, -1, -2, -3, -3, -4, -5, -6, -6, -7, -9, -10, -10, -9, -9, -9, -6, -7, -4, -2, -1, -6, -3, --2, -2, -2, -1, -1, 0, 0, -1, -4, 4, 2, -1, -5, -4, -5, -5, -5, -6, -6, -6, -7, -7, -7, -7, -7, --7, -7, -6, -6, -6, -4, -3, -2, -8, -11, -11, -6, -8, -5, -7, -7, -7, -8, -9, -8, -10, -7, -12, -10, -8, --2, -4, -4, -5, -4, -4, -4, -3, -3, -6, -4, -3, 0, -3, -3, -3, -3, -2, -5, -10, -3, -4, -1, 1, 2, -1, 2, 2, 2, 1, 2, 1, 0, -4, -3, -8, -5, -6, -9, -11, -9, -7, -6, -2, -3, -11, -6, -3, 3, -3, --4, -5, -3, 1, -7, -6, -1, 1, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -4, -6, -5, -9, --13, -9, -6, -5, -1, -4, -16, -5, -1, 12, -2, -3, -2, -1, 0, -10, -3, 2, -1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, 1, -3, -9, -12, -22, -31, -24, -17, -11, 0, -6, -28, -14, -2, 17, -2, -9, -7, -4, -2, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 16, 25, 36, 40, 35, -16, 8, 10, 16, 27, 22, -1, 14, 20, 26, 4, 16, 9, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, -1, -6, -15, -26, -33, -36, -27, -9, 13, 21, 11, 4, -5, -16, -3, 8, 21, 22, 9, 19, 3, --2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 5, 19, 27, 36, 42, 32, 8, -14, -19, --4, 21, 29, 18, 2, -18, -27, -6, -28, -48, -2, 3, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -3, -13, -11, -13, -15, -13, -10, -7, 12, 23, 32, -9, -28, -22, -7, 11, 29, -13, 26, -46, -14, 5, -2, 1, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 2, 13, 10, 7, 4, 0, -5, -11, -12, -15, -11, -9, 1, -12, 22, 29, 37, 41, 0, 9, 8, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 11, -10, 9, 6, 3, -1, -6, -8, -9, -9, -8, -7, -5, -8, -7, -6, -6, 8, 8, 2, 1, 1, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, -1, -6, -6, -6, -7, -7, -8, -9, -10, -10, -9, -9, -6, -4, -1, 1, 2, -5, 7, -5, -5, -8, -3, -3, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -2, -2, -2, 0, -1, -2, -2, --3, -4, -5, -4, -3, -3, -3, -4, -4, -4, -5, -5, -5, -3, -3, -6, -8, -8, -5, -7, -7, -7, -6, -6, -6, --6, -6, -6, -5, -6, -5, -4, -2, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -4, --4, -3, -5, -1, 0, -3, -2, 0, 0, 0, -1, -1, -1, -1, -1, 0, -1, -4, 0, 0, -4, -4, -4, -5, -4, --4, -4, -3, -4, -6, -4, -3, -1, -3, -3, -3, -3, -4, -4, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, -2, 0, -4, -6, -8, -10, -8, -6, -5, -3, -4, -9, -5, -3, 2, -1, -2, -3, -3, -3, -7, -0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -3, -6, -8, -11, -7, -5, -4, -2, --4, -13, -5, -1, 8, 1, 0, -1, -1, -4, -8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -5, -12, -17, -24, -17, -12, -8, -2, -7, -22, -11, -1, 14, 4, -1, -2, -1, -3, 6, 1, -1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 11, 18, 22, 26, 20, 5, -1, 0, 6, 16, -13, -5, 9, 13, 14, 1, 6, 6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, --5, -14, -20, -26, -27, -18, -2, 14, 18, 8, 2, -2, -8, 5, 12, 17, 16, 6, 12, 1, -1, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 13, 21, 27, 29, 19, 1, -15, -18, -5, 10, 16, 15, 1, --11, -14, -3, -18, -29, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -9, -10, --11, -8, -5, -1, 16, 24, 27, -5, -19, -15, 0, 15, 30, -4, 30, -20, -3, 1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, -1, 1, 10, 7, 5, 1, -1, -3, -7, -8, -9, -3, -3, 5, 14, 25, 32, 39, 42, --3, 9, 4, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 9, 7, 7, 5, 4, 1, --2, -5, -6, -7, -7, -7, -7, -11, -10, -9, -7, 6, 9, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 1, -2, -5, -5, -6, -6, -7, -8, -9, -8, -7, -7, -5, -3, -1, 1, 3, 4, 7, -4, -3, -3, --1, -1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -2, -1, -2, -3, -4, -4, -5, -5, -5, -5, -5, --5, -5, -5, -5, -5, -4, -5, -4, -3, -3, -2, -3, -4, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -3, --2, -2, -4, -4, -4, -4, -5, -5, -5, -5, -5, -5, -4, -4, -4, -4, -4, -3, -3, -5, -4, -3, -4, -5, -5, --4, -2, -2, 0, -1, -1, -1, -1, -1, -1, -2, -2, -4, -5, -5, -3, -4, -4, -5, -4, -4, -4, -4, -4, -5, --4, -4, -3, -4, -4, -3, -3, -3, -5, -5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, --3, -4, -5, -7, -8, -7, -6, -5, -4, -5, -8, -6, -5, -2, -4, -5, -3, -3, -2, -7, -1, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, -5, -7, -9, -7, -5, -6, -4, -6, -11, -7, -5, 1, --5, -4, -1, -3, -2, -8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -10, --15, -19, -14, -10, -9, -5, -9, -18, -12, -7, 2, -6, -6, -1, -2, -4, -1, 1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 13, 18, 17, 12, 5, 0, 1, 4, 11, 7, -9, 1, 4, 5, --3, 7, 3, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -6, -13, -19, -22, -20, --13, -2, 9, 12, 5, 1, -3, -7, 1, 7, 12, 10, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 2, 10, 14, 18, 17, 8, -5, -15, -14, -2, 6, 7, 1, -12, -19, -17, -5, -17, -16, -3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -6, -8, -9, -7, -4, 0, 11, -14, 13, -9, -16, -9, -5, 1, 9, -11, 14, -12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -1, 5, 4, 3, 0, -2, -4, -8, -9, -10, -8, -5, 1, 7, 13, 18, 23, 22, -6, 1, 1, -1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5, 5, 3, 2, 0, -2, -4, -4, -3, -4, --5, -7, -9, -10, -10, -9, 5, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, --4, -4, -4, -4, -4, -5, -5, -6, -6, -6, -5, -4, -2, 0, 1, 3, 4, -3, -3, -2, 0, 0, 1, 0, 1, -0, 0, 0, 0, 0, 1, 0, 1, 0, 0, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, -4, -5, -4, --4, -4, -4, -3, -3, -4, -4, -3, -1, -2, -1, -1, -1, -1, -1, -1, -1, -2, -1, -3, -4, -4, -3, -3, -4, --4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -4, -1, -1, -1, -1, -2, -3, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 1, -3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, --1, -1, -1, -1, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, -2, -2, -2, --2, -1, -1, -1, -1, -2, -1, -1, 1, 0, 0, -1, -1, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -2, -1, 0, -1, -1, -1, -3, -1, 0, 3, 0, 0, 0, 0, -1, --3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -3, -5, -6, -3, -1, -1, --1, -2, -6, -3, 0, 4, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, 4, 7, 8, 10, 8, 5, 2, 0, 1, 3, 7, 6, -1, 4, 4, 4, 0, 3, 2, -1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -5, -7, -8, -7, -4, 1, 5, 6, 2, -0, -1, -3, 3, 6, 6, 5, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 2, 5, 7, 9, 9, 5, 0, -5, -5, 1, 5, 6, 6, 0, -4, -3, -1, -6, -5, 1, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -2, -2, -1, 0, 2, 8, 9, 7, -4, -7, -2, -2, 7, 12, -1, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 2, -1, 0, -1, -2, -3, -3, -3, -1, 1, 4, 9, 12, 15, 18, 17, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, 3, 2, 2, 1, 0, -1, -1, -2, -2, -2, -2, -4, -5, -5, --4, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, -2, -2, -2, --2, -3, -2, -2, -2, -1, -1, 0, 1, 2, 3, 3, -1, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 1, 1, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, --2, -2, -1, -1, -1, -1, -1, -1, -1, -2, -}; -#else const uint32_t defaultHRIR_rom_AlphaR48[470 * 128] = { 0x3e094000,0x3e007000,0x3e24a000,0x3cde8000,0xbcb88000,0xbd744000,0x3d768000,0xbc7e0000,0xbd7b8000,0xbd83e000,0xbd780000,0xbd3b8000,0xbd714000,0xbd7e0000,0xbd710000,0xbc7d0000,0x3d354000,0xbd848000,0xbc870000,0x3caf0000,0x3e15c000,0x3dee8000,0x3dfce000,0x3e008000,0x3e011000, 0x3e025000,0x3e036000,0x3e04b000,0x3e070000,0x3e09d000,0x3e0d2000,0x3e103000,0x3e151000,0x3e12e000,0x3e103000,0x3e098000,0x3e093000,0x3e20f000,0x3e0b9000,0xbd02c000,0x3dd28000,0x3d124000,0x3d2c0000,0x3d888000,0x3d6f0000,0x3db2a000,0x3d78c000,0x3d018000,0x3d618000,0x3d82a000, @@ -9758,69 +4908,6 @@ const uint32_t defaultHRIR_rom_AlphaR48[470 * 128] = { 0xb8800000,0xb8800000,0xb9000000,0x38800000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x38800000,0xb9000000,0xb9000000,0xb9000000,0xb8800000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000,0xb9000000, 0xb9000000,0xb9000000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb9000000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_E48_Q = 28; -const int32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470] = { -75424032, 74531904, 86612200, 66107596, 75444368, 75727784, 82244496, 84548440, 86432144, 81644744, 78654600, 75132304, 72713520, 70622328, 69310368, 67758128, 66404528, 65047140, 63993372, 57231440, 73522264, 66414948, 76822592, 127171776, 64817104, -73873304, 114188832, 116968976, 114309384, 99533048, 114609576, 118095880, 113416904, 75929376, 71080128, 123744688, 88490240, 108216048, 103026360, 99406752, 113982960, 121567712, 145147152, 156287776, 157814048, 141771504, 126916336, 111613680, 100926560, 93788352, -90145256, 85658000, 81464256, 78167208, 71771144, 65427948, 64309520, 66181292, 40021936, 44732696, 34530948, 33813708, 38895224, 38562476, 44852792, 42714884, 44328724, 44021216, 37415512, 43703756, 44796304, 51879936, 63726004, 79100824, 98505048, -148871632, 159705120, 183833440, 234245328, 259008368, 269627520, 234074976, 203012800, 171337520, 146485232, 127769984, 116953464, 103983080, 92973936, 85716296, 67963720, 64276720, 39233372, 36672092, 26075804, 24379304, 20735684, 19898804, 17928572, 18870112, -21044484, 23990268, 17020900, 21224552, 21338016, 25477764, 30193404, 43366716, 57023748, 91722512, 133646072, 205794592, 239306576, 294192960, 387730976, 450490176, 459574368, 370752512, 291993600, 214652896, 164227728, 137433760, 126617288, 111184768, 97328064, -89036920, 68463760, 54185088, 32091356, 23118216, 15687906, 12887863, 8729430, 7101252, 6261466, 6853817, 7608754, 8691827, 6511330, 6658606, 8836663, 13511358, 25566096, 30537112, 49869524, 209668960, 337940192, 443906624, 466545344, 495262720, -481467872, 489418304, 524847008, 530943488, 554122816, 558894400, 544865024, 497801152, 433887552, 345133248, 263490736, 200545216, 123496368, 88223928, 55816504, 38373596, 21390416, 15083886, 9904214, 8186400, 6804421, 8640906, 8916849, 9173325, 9321409, -12200822, 19901988, 29311332, 45288548, 61664532, 118390080, 211950656, 260648128, 691361536, 735024448, 725242496, 604737408, 608751552, 630492096, 592162624, 574645568, 574388608, 564391296, 541691968, 503884864, 389209664, 292789248, 235308688, 146704464, 112014448, -61059164, 51831636, 30422924, 21220984, 12752174, 9770286, 8032490, 9453006, 10947717, 13576384, 12619420, 14283200, 19747668, 26282912, 39149144, 62333788, 103109072, 290779328, 521571744, 1078241024, 1034127168, 1310186752, 837233024, 715114496, 659689600, -548610880, 556907776, 624036672, 644475264, 642998144, 592013440, 460868224, 329849120, 232485056, 145865232, 114721888, 61804144, 52640656, 36698544, 35777520, 21235736, 16203012, 18657140, 15161718, 16737635, 27557588, 15156105, 15142011, 20744192, 44974140, -49343412, 129457744, 99993464, 327964704, 683397120, 1176980864, 1052747840, 1331785600, 779853056, 611930624, 550641664, 605276352, 649373248, 641033792, 585743040, 524077920, 436253440, 333468384, 243011920, 170636448, 122449408, 101354928, 67784680, 58921164, 38776788, -34904800, 24086396, 18787040, 16490707, 13669495, 16938356, 43667848, 19193076, 16523645, 21472156, 25285376, 40862836, 59750228, 99086064, 271379744, 444236384, 739872576, 654157824, 648109760, 505718176, 464204384, 459449056, 427852832, 442023936, 509693248, -457745344, 396424160, 314269120, 226664816, 166402944, 133290776, 113346472, 103902736, 86816432, 66629940, 48962084, 35720748, 29233276, 24562032, 19062744, 17491388, 19163568, 29593580, 21461188, 23274132, 30028856, 39221780, 49085460, 73847608, 205127568, -254314416, 238987888, 301799360, 277785408, 286802176, 297969600, 302244480, 302528768, 288127360, 281675328, 265445600, 232091344, 205192560, 186600720, 170878640, 143012064, 113593536, 100100440, 107315664, 75732144, 76162480, 57204012, 54469112, 37980280, 26806928, -22260844, 22272656, 23937744, 27159244, 26509924, 26622408, 28229680, 35367772, 49204344, 61695080, 103900336, 121836624, 150744496, 184140832, 203732128, 241799248, 238494064, 243529408, 254406576, 238071328, 229021328, 223715616, 196645056, 176162752, 159002704, -142573648, 126615712, 113759296, 102784304, 104346592, 88544576, 78699928, 64252684, 56108540, 47242052, 46300468, 38800868, 41727152, 38729736, 45043312, 33026112, 42383008, 36289152, 49830928, 62840180, 86417056, 98489248, 175154480, 148011104, 140740992, -149134064, 157170480, 166445856, 178327424, 193492944, 180518480, 172019056, 163781328, 155136512, 148126496, 141112592, 133503280, 125272064, 119077872, 113600400, 106619200, 107246552, 116209160, 81543168, 87060144, 78315008, 73011768, 80010928, 81078632, 90033040, -81888096, 89724920, 86719264, 75640904, 85811864, 89835984, 98729832, 112974520, 134017744, 149660336, 121699712, 131946000, 132059824, 136090496, 138353120, 143540832, 137312976, 133961288, 130414200, 127615872, 125114080, 122723568, 121536504, 120188880, 118288392, -117488112, 109849176, 131830176, 123267312, 139041856, 209242944, 120840096, 133313064, 195531760, 201218528, 193271856, 171945984, 192158256, 195252208, 185356768, 136327296, 130708192, 208138288, 150904736, 155491792, 457273, 581468, 672841, 314624, 397486, -325463, 501682, 555154, 541776, 534143, 509766, 467249, 455632, 454101, 472514, 482933, 485397, 478153, 474794, 367943, 662031, 587663, 709725, 1569022, 593989, 668464, 1356237, 1384143, 1362176, 1129444, -1307708, 1314683, 1208362, 646890, 634213, 1409685, 804648, 781185, 640797, 350550, 362424, 265397, 745029, 975938, 906049, 932714, 849132, 742854, 678339, 677333, 747903, 808799, 834216, 815759, 712475, -614223, 621386, 635322, 250878, 355173, 146929, 132907, 242847, 250547, 386293, 351146, 358032, 288248, 150882, 189346, 147806, 329365, 410334, 415314, 423081, 449648, 387439, 210724, 1213597, 1836708, -1630295, 1677493, 1440459, 1254278, 1093602, 1046466, 1194394, 1212244, 1221458, 1176314, 883958, 921552, 411734, 449705, 344857, 298076, 193553, 147608, 123395, 169157, 259566, 289813, 166020, 157031, 105385, -95105, 117016, 402221, 272083, 452134, 444074, 319541, 199409, 163711, 1625127, 2904070, 2566007, 2642036, 2340424, 2125016, 1877170, 1900759, 2151683, 2330611, 2368381, 2173743, 1534689, 1158661, 664065, 582982, -540751, 533599, 305974, 161929, 123061, 201557, 302508, 408482, 278192, 211560, 106745, 167690, 152165, 804935, 511976, 1883612, 1268526, 1814416, 2035953, 2828216, 2678713, 2698490, 2929046, 2387135, 1868436, -1993263, 1657611, 1209427, 623574, 320599, 317405, 858750, 717707, 1164291, 712205, 652236, 546213, 505650, 286511, 203635, 159117, 73504, 92147, 380932, 311623, 412702, 419875, 530776, 299554, 693775, -1350988, 2016922, 2659034, 896468, 492285, 1498331, 1569492, 1139029, 755025, 336907, 339389, 314231, 219531, 224988, 254853, 588645, 1255639, 2359261, 1245588, 766692, 262255, 172126, 119631, 146837, 176778, -141864, 86411, 140317, 169609, 169364, 55400, 68931, 242814, 447007, 442440, 678607, 1591980, 769486, 1046903, 767022, 1283064, 5283437, 7109361, 7882903, 6970852, 3952947, 2287401, 1351171, 2629292, 3472469, -3190349, 2077689, 778527, 131581, 167846, 309562, 410891, 190438, 84792, 102596, 91382, 43064, 42910, 36102, 18098, 14754, 72589, 124612, 156585, 217389, 316960, 461457, 534984, 1847588, 2370173, -4977580, 6899353, 10881322, 6914001, 3613464, 1041372, 708254, 712437, 749959, 574262, 476245, 294202, 509748, 743700, 806840, 658588, 379981, 198025, 148224, 106905, 93689, 89881, 56948, 40610, 21736, -25825, 42039, 53642, 76195, 233837, 188116, 425821, 881583, 1383544, 3817024, 5852594, 8898330, 7139428, 5688002, 5014605, 4450394, 3011134, 1877650, 1501713, 1910378, 1174649, 849479, 692510, 228194, 104290, -87347, 79673, 88650, 116235, 91838, 75499, 67376, 36416, 36478, 68031, 36760, 46732, 77072, 152855, 300847, 530407, 1460157, 2120205, 2204150, 2908754, 2938950, 2686862, 2806730, 2115109, 2048390, -2117296, 2100549, 2289245, 1004884, 752320, 726157, 748073, 734162, 585963, 640227, 592124, 443872, 364657, 210095, 63260, 74194, 65390, 103870, 81696, 121092, 239308, 341502, 478933, 608979, 922984, -1220127, 1446979, 1357547, 1392296, 1660778, 2105521, 1374535, 1464505, 1506561, 1613952, 1998300, 1878383, 2062805, 2547836, 1908001, 1535251, 1335171, 1017093, 764424, 602545, 490830, 409905, 354686, 257042, 229580, -177737, 137209, 69108, 98135, 131226, 212691, 332249, 423223, 524148, 715885, 729030, 830857, 970042, 1046455, 1205084, 1392134, 1316620, 1063725, 940863, 884877, 893729, 917520, 985662, 1066001, 1205378, -978485, 866429, 761796, 676832, 605275, 566730, 471420, 392802, 321879, 262820, 206896, 169966, 199331, 204224, 279384, 249346, 331589, 440782, 491320, 584509, 617745, 687960, 742124, 797398, 802492, -798368, 824091, 865033, 828424, 802567, 727647, 765993, 770186, 804340, 831237, 894537, 819384, 773831, 734621, 683592, 642072, 604551, 574490, 544419, 518187, 490375, 458539, 448916, 540488, 628686, -928195, 631115, 715451, 1072756, 1080336, 1040782, 958925, 1025583, 1027310, 1013241, 839308, 819317, 1094094, 883692, 901546, 19002, 26862, 30260, 13541, 17143, 15496, 19999, 21698, 21211, 22432, -22339, 22177, 20786, 20663, 22556, 23108, 22792, 21187, 19459, 14388, 27512, 26173, 37729, 70097, 25666, 36679, 60513, 63170, 61758, 51003, 60917, 61549, 56396, 33871, 25134, -63523, 43589, 40537, 27939, 20268, 23007, 25974, 35955, 40262, 34886, 39520, 38436, 39765, 32424, 38074, 53607, 62781, 60921, 48661, 33667, 26239, 24226, 32084, 7569, 13491, -11301, 11180, 10088, 11665, 16495, 18304, 16887, 14065, 10801, 7572, 5939, 16128, 14813, 17779, 19371, 28167, 32052, 43254, 68251, 82591, 69084, 75276, 74139, 83441, 59982, -63500, 96890, 104149, 98125, 73568, 40381, 37213, 16837, 15333, 7496, 8713, 19969, 16508, 18093, 14089, 27295, 63102, 57184, 41210, 28906, 7531, 3945, 23242, 8974, 20525, -21103, 53445, 77740, 138719, 149161, 162638, 112967, 115358, 108419, 148030, 79895, 137050, 287984, 360742, 327266, 230359, 122634, 87112, 64379, 40435, 16730, 30035, 40294, 26848, 19044, -17078, 18278, 42021, 89359, 78903, 68086, 40130, 14773, 66682, 23313, 184369, 163944, 334823, 317755, 267605, 151629, 128157, 185487, 129025, 188186, 291928, 255291, 195714, 275816, 225204, -178103, 206401, 202451, 255362, 211505, 160494, 102968, 78578, 39303, 16826, 18126, 17178, 22834, 2607, 3495, 35825, 97790, 85349, 77511, 53041, 112093, 205271, 97328, 107018, 99521, -207969, 280519, 299408, 84341, 51440, 56433, 260865, 185456, 230433, 225722, 132754, 144346, 162464, 110730, 66787, 55012, 21612, 11004, 7448, 6355, 2830, 9652, 11540, 14941, 6332, -2452, 15689, 65519, 255479, 237798, 125507, 101883, 1026146, 1854573, 419495, 122575, 497892, 480738, 543293, 587618, 427568, 361388, 252511, 178783, 248702, 260613, 174964, 109183, 56273, 33962, -26629, 21574, 11382, 6605, 12984, 11627, 6964, 8552, 436, 2535, 935, 3766, 10885, 19517, 17434, 18870, 87216, 453185, 463609, 967392, 392838, 306612, 596657, 434724, 255262, -193097, 96565, 113790, 76502, 35896, 51997, 60858, 62659, 62299, 62683, 47532, 42013, 35343, 33289, 23941, 17908, 3761, 354, 1101, 460, 1030, 1251, 248, 644, 11300, -15818, 22428, 200378, 397319, 253038, 248618, 301842, 274144, 201348, 182251, 192472, 164262, 163791, 176326, 203428, 152101, 106767, 80320, 26958, 8011, 12370, 27771, 46622, 64206, 70473, -57449, 45091, 17929, 5546, 1099, 1463, 2763, 3410, 4810, 4777, 8515, 2801, 6772, 36085, 169257, 93935, 97710, 121131, 101887, 97087, 90500, 102481, 133438, 89120, 83346, -92716, 84758, 73671, 52899, 36023, 19612, 10477, 10184, 10939, 17230, 19273, 14998, 12724, 11045, 9801, 9009, 6703, 11945, 16711, 23564, 26909, 26735, 34730, 45709, 51031, -64545, 55701, 54292, 50741, 40091, 32645, 27558, 29181, 37466, 31064, 29283, 27289, 15526, 10705, 12441, 11101, 11313, 13895, 13152, 16265, 18145, 20786, 22283, 25967, 20327, -21291, 29235, 25854, 25904, 32356, 31662, 35402, 43894, 45605, 55381, 65914, 54603, 45881, 38275, 33739, 31729, 28368, 27118, 27435, 32126, 26080, 22706, 19894, 17198, 14816, -14254, 14388, 15638, 17466, 19700, 22144, 25448, 25575, 24995, 28190, 29142, 34862, 41120, 38633, 40485, 42540, 42977, 45770, 49173, 44055, 39053, 38818, 36051, 25919, 23283, -20112, 20263, 20196, 20401, 20861, 22012, 20275, 19401, 19058, 18748, 18977, 18732, 19812, 20283, 20908, 21888, 22243, 25329, 26653, 32574, 44017, 28817, 35656, 51560, 50819, -48333, 42517, 45261, 43583, 42144, 31960, 26373, 40707, 32340, 28572, -}; -#else const uint32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470] = { 0x3e8fdc24,0x3e8e2888,0x3ea5331d,0x3e7c2e33,0x3e8fe612,0x3e907075,0x3e9cde72,0x3ea1436b,0x3ea4db32,0x3e9bb999,0x3e960591,0x3e8f4db2,0x3e8ab0a6,0x3e86b38f,0x3e8432f4,0x3e813d06,0x3e7d502c,0x3e782299,0x3e741d87,0x3e5a5214,0x3e8c3b8b,0x3e7d5a59,0x3e928708,0x3ef28f98,0x3e7741f4, 0x3e8ce6f3,0x3ed9cc44,0x3edf19c2,0x3eda0721,0x3ebdd81f,0x3eda99b5,0x3ee14001,0x3ed85359,0x3e90d2e4,0x3e879318,0x3eec0636,0x3ea8c820,0x3ece67de,0x3ec481d7,0x3ebd9a74,0x3ed967be,0x3ee7df3c,0x3f0a6c51,0x3f150c32,0x3f1680d2,0x3f07342f,0x3ef212de,0x3ed4e2de,0x3ec0808c,0x3eb2e318, @@ -9880,68 +4967,6 @@ const uint32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470] = { 0x389d2000,0x389e4e00,0x389dc800,0x389f6200,0x38a2fa00,0x38abf800,0x389e6600,0x38979200,0x3894e400,0x38927800,0x38944200,0x38925800,0x389ac800,0x389e7600,0x38a35800,0x38ab0000,0x38adc600,0x38c5e200,0x38d03a00,0x38fe7c00,0x392bf100,0x38e12200,0x390b4800,0x39496800,0x39468300, 0x393ccd00,0x39261500,0x3930cd00,0x392a3f00,0x3924a000,0x38f9b000,0x38ce0a00,0x391f0300,0x38fca800,0x38df3800, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470] = { -75421488, 66224256, 87588992, 74644368, 88538160, 124750960, 70779776, 76065512, 113076712, 117758280, 114685712, 99697720, 114338256, 116987096, 114060192, 73846616, 64704504, 127022976, 76461672, 66327712, 73764184, 57289788, 63951156, 65053180, 66401008, -67760256, 69310184, 70635240, 72716416, 75132880, 78649848, 81648760, 86437904, 84547160, 82224888, 75758448, 75321056, 99439824, 100628176, 109349728, 64449932, 52442920, 44442504, 43599928, 37176108, 43589180, 44530888, 42711168, 44908180, 38576748, -38818536, 33849976, 34737664, 44881992, 40015848, 66432004, 63649028, 65431972, 71844664, 78121816, 81498144, 85632224, 90158168, 93784688, 100936704, 111611168, 126930160, 141742384, 157781824, 156277248, 145277472, 121399448, 114268456, 146810800, 102723760, -79499552, 56695640, 42793024, 31050612, 25412212, 21555576, 20997880, 16785472, 24165976, 20912708, 18893980, 17966132, 19741752, 20424100, 24245388, 25700356, 36420868, 40275208, 63732708, 68074304, 85668272, 92954112, 103996912, 116945160, 127798752, -146493824, 171331216, 202969216, 234090512, 269755840, 259001488, 234068368, 183959568, 159857936, 219898048, 121298512, 90777008, 48707120, 32353624, 22456932, 13937132, 8583998, 6517476, 6497729, 8690544, 7540200, 6852066, 6282912, 7065386, 9215860, -13204213, 15051976, 23088572, 29238060, 56821432, 67053460, 89874848, 96933928, 111367568, 126521144, 137433968, 164166416, 214706352, 291976320, 371027520, 458661312, 451654336, 386386592, 296342656, 234387936, 488448576, 291939136, 216155104, 99611456, 61464408, -42137428, 30411988, 19383888, 12379842, 9256454, 9155787, 8925679, 8599322, 7081502, 7766493, 9997374, 14396740, 22068792, 36275832, 49600996, 93609600, 121256600, 202054144, 262723376, 345578368, 433428224, 498107616, 545006016, 558819840, 554094208, -531073696, 523858272, 491105120, 477940448, 503061440, 449774848, 730037440, 231282608, 212724160, 91087816, 70088120, 39238828, 23877348, 20035256, 13905924, 12727064, 13401412, 10900714, 9522040, 8159514, 9502980, 12235388, 22497496, 30592580, 51941232, -58847448, 114612384, 145025056, 236586928, 292168160, 389649984, 503192704, 541963008, 564510592, 574496896, 574738880, 592281728, 629555264, 610192704, 601520960, 734607936, 714238016, 1145496320, 460382784, 330173376, 106661248, 120622088, 51234424, 41394772, 20607976, -15223756, 15654359, 27794480, 16936096, 14981095, 18505708, 15808716, 22440440, 34557552, 36453820, 53240116, 59648832, 117133464, 144459312, 233429056, 329205280, 461450528, 591073984, 643574848, 644486656, 623997888, 556742976, 548754048, 658636672, 716869440, -832329024, 1324736128, 1002425856, 1313010176, 558723200, 335545600, 117782664, 66583688, 42042256, 24070128, 20525192, 16556179, 18798380, 42853292, 16726026, 13615365, 17043464, 19207244, 24016144, 35717112, 40501300, 59243928, 62697224, 105314416, 120222288, -171948224, 242253296, 333960352, 435754560, 524381152, 585821568, 640940160, 649596416, 605304384, 550474112, 613610496, 773724096, 1350735744, 1004565760, 743259136, 471401536, 326453056, 138675744, 81379080, 52298476, 33441632, 31354236, 23880972, 21675504, 28750284, -19053176, 17541292, 18797248, 23132472, 29873624, 35500988, 44805260, 74579464, 83362272, 106309360, 112618616, 133579280, 166289216, 226784000, 314013440, 396606944, 457914880, 509649376, 442082304, 427902400, 459266688, 464458048, 504540160, 651223552, 650342400, -291511840, 248574640, 186206976, 101069672, 65631792, 54126704, 35604880, 28052852, 26639612, 26588708, 25835716, 23928220, 22236928, 22636340, 27086708, 37212216, 51523300, 56322976, 72167920, 80651536, 102824552, 101602792, 112910008, 143314672, 170770880, -186631904, 205188784, 232145264, 265411040, 281733120, 288057344, 302465696, 302180160, 298404608, 285489216, 281145760, 186144896, 149568000, 125116280, 102707168, 83975880, 61488484, 49495912, 36197156, 42609100, 32920328, 44870348, 38559452, 41624904, 38328040, -46192276, 47745708, 58240672, 64057852, 79117584, 86216800, 105209520, 102730304, 113737520, 126649872, 142559504, 159006528, 176140528, 196628320, 223729120, 229020480, 238049584, 254429392, 243498016, 238453840, 241963760, 203207328, 140183312, 150186560, 166778128, -110090840, 100592840, 90964896, 85920656, 75354504, 86722328, 90087344, 81684152, 89918920, 81199400, 80749520, 73333392, 78137552, 87154752, 81248392, 115037056, 108379344, 106548632, 113522464, 119119200, 125257520, 133496288, 141097360, 148123696, 155140368, -163783216, 172022384, 180513456, 193475872, 178366544, 166416560, 157244752, 149119520, 121750544, 147847872, 134874288, 149567488, 201409728, 131483584, 135821616, 185080768, 195063952, 192439024, 171952576, 193081376, 201267056, 195741600, 133270368, 120770272, 211747536, -139399968, 123320016, 130850608, 109763872, 117603472, 118287960, 120197808, 121540424, 122726288, 125115024, 127616312, 130416888, 133960824, 137312752, 143546784, 138353888, 136107232, 131999184, 132069216, 155484208, 457273, 314253, 683386, 581187, 803765, -1421306, 628618, 647317, 1204118, 1313007, 1308723, 1129859, 1361243, 1384322, 1354386, 668456, 593758, 1572319, 697816, 584758, 669173, 369500, 473550, 478497, 484861, 483038, 473061, 454101, 455632, 467410, -510084, 534143, 541913, 555154, 500607, 325936, 396621, 351944, 616509, 795897, 418871, 341006, 147823, 189171, 151274, 288069, 357304, 348267, 384827, 250363, 244886, 133427, 144102, 361950, 261766, -642108, 601045, 615719, 714357, 814900, 835658, 808138, 747364, 677190, 677512, 743930, 849290, 931779, 906158, 976519, 748328, 264807, 363298, 430994, 464097, 419438, 265309, 390177, 115806, 94701, -105639, 154204, 164421, 292305, 258739, 168097, 123398, 142887, 196401, 291486, 324267, 443254, 441738, 905488, 885768, 1175234, 1220563, 1212571, 1193889, 1046466, 1093593, 1253726, 1439391, 1678334, 1630454, -1834686, 1212165, 210407, 390184, 394926, 339317, 442718, 508775, 814585, 153209, 166316, 106459, 210788, 277966, 408274, 303357, 199631, 123690, 161554, 312804, 546620, 524392, 583833, 574010, 1249096, -1482726, 2206001, 2353242, 2338538, 2147563, 1902226, 1875918, 2125725, 2339997, 2645669, 2557584, 2915642, 1622324, 162949, 187794, 2188223, 958985, 1833393, 1186453, 702185, 294446, 531704, 415967, 414394, 309992, -381102, 91564, 72911, 163137, 198629, 285487, 500394, 577204, 581726, 540562, 1331008, 663538, 883629, 311319, 322429, 620774, 1212754, 1660632, 1998339, 1865438, 2389470, 2915959, 2715693, 2643784, 2891293, -1893127, 959537, 2538637, 2115069, 1516506, 780840, 430963, 437548, 240456, 68595, 53196, 170307, 168852, 140014, 88661, 135332, 174710, 154792, 115236, 202823, 235356, 806187, 1210223, 2391229, 1243730, -592033, 254169, 225679, 218992, 315008, 339743, 337178, 748998, 1145655, 1570532, 1498396, 473253, 781838, 1038301, 795880, 529072, 445521, 322701, 208367, 157291, 125962, 71446, 14757, 18025, 36313, -42852, 42951, 96611, 95338, 91964, 192459, 373732, 320005, 166548, 132426, 773843, 2081530, 3182594, 3477588, 2629625, 1352419, 2286076, 3953474, 6952370, 7904998, 7103491, 5304091, 1266694, 5148313, 2291327, -1889974, 1532206, 870632, 422318, 195813, 211700, 74650, 54491, 40090, 24969, 21041, 42481, 58117, 92666, 95941, 109676, 145494, 182475, 403576, 640643, 817831, 740245, 511403, 293254, 476599, -574740, 749269, 713602, 707687, 1040836, 3620042, 6894042, 10950455, 6782719, 8917193, 5885569, 4130911, 2766075, 2162604, 2151464, 1424257, 520865, 302189, 153875, 76239, 45360, 36539, 69486, 35551, 36008, -70657, 59410, 122068, 106432, 90987, 79724, 87662, 104259, 228289, 689802, 849842, 1174731, 1913469, 1499283, 1879913, 3005181, 4459405, 5009937, 5702046, 7119094, 2749564, 2748692, 2590934, 2040421, 1723148, -1439468, 1352443, 1468709, 1209730, 921485, 608395, 477633, 340349, 242219, 123139, 75130, 88934, 66516, 73558, 61515, 204024, 366606, 444512, 592326, 640227, 585633, 735997, 748552, 726077, 752201, -1006267, 2281345, 2103228, 2121678, 2041208, 2133655, 1519549, 1441779, 1382329, 1328585, 1340032, 1173910, 1045071, 962337, 834592, 731890, 713881, 524073, 423702, 332214, 213330, 131625, 100547, 68969, 140290, -172598, 231512, 257042, 354545, 409905, 490249, 602545, 764424, 1017392, 1336220, 1535200, 1907676, 2547717, 2062728, 1877947, 1997967, 1611507, 882005, 955399, 1021380, 844496, 827918, 809408, 804593, 797183, -741289, 687385, 618432, 583715, 489646, 440989, 331198, 247314, 280899, 204552, 198334, 172043, 206425, 262702, 321828, 392976, 471420, 566183, 604783, 676975, 761687, 866429, 978485, 1204426, 1066373, -984349, 919749, 893187, 727647, 791990, 828017, 880275, 1059017, 822546, 836569, 1009491, 1025918, 1025960, 958025, 1038821, 1081995, 1074472, 717983, 632366, 937701, 631438, 540473, 447730, 458078, 490941, -518187, 544419, 574490, 604551, 642007, 683729, 734621, 773831, 819433, 894175, 831760, 804340, 769968, 766380, 901546, 19002, 13515, 30858, 26625, 43626, 63837, 24954, 33871, 56400, 61723, -60824, 51060, 61846, 63170, 60335, 36632, 25812, 70011, 37175, 25963, 27636, 14388, 19396, 21187, 22792, 23045, 22556, 20663, 20786, 22177, 22339, 22432, 21211, 21651, 20012, -15496, 17111, 20413, 26393, 41313, 15151, 16713, 5966, 7563, 10726, 14146, 16857, 18149, 16366, 11639, 10196, 11180, 11023, 13770, 8082, 32630, 23366, 26278, 33904, 48665, -60921, 62806, 53678, 38074, 32335, 39812, 38362, 39459, 34899, 40377, 35955, 25803, 22961, 27186, 21181, 17708, 8737, 22652, 4019, 7504, 28722, 41517, 57346, 62852, 27157, -13966, 17946, 16042, 19989, 8651, 6591, 15065, 17965, 36817, 40418, 73568, 98125, 104128, 97011, 63669, 59982, 83339, 74275, 75276, 69066, 82591, 68251, 43168, 32258, 57745, -15879, 20022, 22988, 66521, 14800, 40396, 68167, 79168, 88687, 41643, 18341, 17021, 19434, 26400, 40789, 29803, 16187, 40199, 61848, 90489, 120594, 231109, 326881, 360742, 287356, -137028, 79683, 148030, 108386, 115650, 112849, 163459, 149593, 138921, 77059, 348813, 154935, 180845, 102772, 54095, 76544, 85288, 97444, 35727, 3388, 2631, 22690, 16992, 18628, 16707, -39415, 77633, 103737, 157004, 204237, 262814, 199384, 208094, 177566, 225349, 273953, 196458, 255809, 291358, 187958, 129178, 184915, 128595, 150104, 270732, 312545, 110583, 90845, 211396, 98649, -123900, 241238, 251174, 66369, 15609, 2393, 6422, 14865, 11453, 9781, 2469, 5952, 7758, 10460, 24058, 53638, 68015, 109795, 164208, 144249, 132651, 223856, 232013, 185725, 260635, -56433, 51422, 84101, 300011, 282178, 208417, 98408, 420494, 1851769, 1027142, 449763, 85713, 18905, 17047, 19197, 11060, 3715, 902, 2482, 425, 8599, 7130, 11583, 12471, 6924, -11777, 20078, 27102, 33808, 56340, 109076, 175226, 259840, 249075, 179399, 251592, 362236, 427387, 584978, 543929, 480370, 498061, 121816, 401282, 963117, 463386, 397726, 200405, 22573, 15961, -11250, 602, 262, 1283, 982, 470, 1219, 376, 3853, 17707, 23935, 33545, 35171, 42853, 46717, 63163, 61978, 62659, 60704, 52050, 36067, 76484, 114043, 96856, 191516, -255872, 434039, 599269, 301851, 302404, 249742, 266692, 161229, 36615, 6950, 2305, 8062, 5198, 4769, 3446, 2659, 1501, 1056, 5694, 18059, 44080, 58201, 72723, 63696, 46616, -27588, 12382, 7942, 27033, 79760, 106767, 152121, 203228, 176326, 163712, 164015, 193104, 182141, 202238, 273251, 118481, 100918, 81429, 62231, 52482, 45795, 34890, 26498, 26953, 23585, -16407, 12208, 6524, 9000, 10023, 10752, 11243, 15616, 18671, 16749, 10728, 10205, 10453, 19612, 36023, 52869, 73671, 84758, 92716, 83405, 88914, 133347, 102481, 90500, 96606, -102612, 51225, 54022, 55881, 53909, 63740, 54179, 45450, 43776, 35496, 31785, 32381, 26061, 25796, 29318, 21285, 20483, 26448, 22044, 20707, 17852, 16413, 13152, 13826, 11313, -11101, 12446, 10705, 15526, 27289, 29283, 31064, 37601, 29181, 27517, 32645, 39836, 33737, 39200, 44725, 35194, 38548, 39226, 43925, 49207, 45758, 42977, 42288, 40485, 38572, -40904, 34575, 28945, 28100, 24786, 25343, 25408, 22144, 19700, 17466, 15638, 14388, 14205, 14816, 17167, 19894, 22706, 26080, 32043, 27435, 27118, 28368, 31638, 20112, 22949, -26060, 32123, 39073, 26449, 31859, 42024, 43634, 45237, 42498, 48147, 50819, 51995, 35656, 28780, 44093, 32574, 26537, 25241, 22243, 21888, 20829, 20283, 19812, 18732, 18977, -18748, 19058, 19401, 20275, 22012, 20878, 20401, 20196, 20284, 28572, -}; -#else const uint32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470] = { 0x3e8fdae6,0x3e7ca020,0x3ea71010,0x3e8e5f72,0x3ea8df86,0x3eedf18e,0x3e870070,0x3e91155d,0x3ed7ad3d,0x3ee09b29,0x3edabee2,0x3ebe2887,0x3eda153a,0x3edf229b,0x3ed98d74,0x3e8cd9eb,0x3e76d3fe,0x3ef246f0,0x3e91d6cd,0x3e7d0528,0x3e8cb1ab,0x3e5a8b0f,0x3e73f44d,0x3e78287f,0x3e7d4cbc, 0x3e813e10,0x3e8432dd,0x3e86b9dd,0x3e8ab210,0x3e8f4dfa,0x3e96033f,0x3e9bbb8f,0x3ea4de02,0x3ea142cb,0x3e9cd4df,0x3e907f6e,0x3e8fa9dc,0x3ebdaa9a,0x3ebfeeda,0x3ed0916c,0x3e75db63,0x3e480dca,0x3e2988e2,0x3e26520e,0x3e0dd0cb,0x3e26478f,0x3e29df32,0x3e22ee20,0x3e2b4fa5,0x3e13289b, @@ -10001,1629 +5026,6 @@ const uint32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470] = { 0x38cb9800,0x38faf600,0x3918a100,0x38cea200,0x38f8e600,0x39242800,0x392a7200,0x3930b500,0x39260200,0x393c1300,0x39468300,0x394b1b00,0x390b4800,0x38e0d800,0x392c3d00,0x38fe7c00,0x38cf5200,0x38c53200,0x38adc600,0x38ab0000,0x38a2ba00,0x389e7600,0x389ac800,0x38925800,0x38944200, 0x38927800,0x3894e400,0x38979200,0x389e6600,0x38abf800,0x38a31c00,0x389f6200,0x389dc800,0x389e7800,0x38df3800, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_Alpha32_Q = 14; -const int16_t defaultHRIR_rom_AlphaL32[470 * 86] = { -4109, 942, 4964, 3820, 4127, 4092, 4325, 4412, 4480, 4339, 4246, 4138, 4049, 3978, 3943, 3907, 3872, 3853, 3804, 3552, 4527, 763, -763, -2805, 1557, --663, -2568, -2653, -2561, -2111, -2588, -2706, -2591, -644, 2103, -2609, -946, -1406, 4377, 4770, 4790, 5008, 5649, 5936, 5981, 5652, 5311, 4948, 4666, 4492, -4424, 4333, 4212, 4199, 3906, 3985, 3419, -910, 1922, 1523, 1386, 863, 1789, 2007, 1805, 943, 1981, 2765, 1748, 2041, 1081, 950, 3167, 1006, 3784, -5667, 5262, 5791, 6992, 7539, 7682, 7063, 6415, 5849, 5315, 4937, 4765, 4561, 4327, 4307, 3668, 3948, 2214, 552, 708, 807, 914, 7, 966, -67, -1632, -320, 1316, -67, 619, 667, 855, 425, 1877, 283, 3635, 5905, 5766, 6663, 8631, 9541, 9662, 8533, 7421, 6386, 5523, 5000, 4851, 4556, 4250, -4217, 3563, 3387, 1868, -133, 1086, -215, 398, 371, 329, 98, -8, 544, 77, 533, 594, 709, 439, 661, 1779, 1013, 5647, 7887, 7739, 8227, -9206, 9877, 10322, 10477, 10091, 8690, 8604, 7936, 6827, 6611, 5997, 5437, 4113, 3975, 2221, -130, 1084, 326, 308, -45, 109, 131, 295, 442, 242, -485, 226, 1001, 343, 1085, 1117, -242, 3452, 8503, 8035, 9672, 10436, 10728, 10246, 9707, 8947, 7924, 7582, 7536, 7840, 7368, 6764, 6457, 4821, 4630, -2185, 219, 634, 358, 942, 717, 226, 320, 200, 146, 232, 170, 794, 418, 1765, 1067, 2155, -599, 4608, 12408, 13079, 15673, 13425, 12165, 10730, -9105, 8729, 10091, 11305, 11699, 11304, 9716, 7970, 6453, 4853, 5024, 2086, 921, 1278, 183, 493, 462, 226, 190, 314, 449, 377, 206, 167, -859, -1320, -1072, 2215, -31, 7830, 14803, 13730, 13720, 11918, 11142, 10240, 10505, 10574, 10308, 10122, 9636, 8773, 7931, 6849, 5845, 4597, 4602, 2480, -490, 933, -735, 598, 516, 217, 594, 38, 774, 522, 247, 1235, 227, 2035, 115, 2199, 1376, 8665, 12754, 11513, 11393, 9662, 8997, 9148, 8580, 9046, 10187, -9519, 8707, 7759, 6253, 4999, 4343, 3838, 4376, 3020, 23, 1656, 347, 361, 714, 625, 335, 659, -249, 487, 482, 879, 912, 699, 485, 3752, --1876, 5715, 8438, 6874, 7029, 6895, 6993, 7079, 6381, 5670, 5379, 5663, 5955, 5933, 5773, 5221, 4604, 4056, 4626, 2136, 17, 1825, 307, 896, 807, -469, 390, 100, 1472, 632, 605, 1043, 614, 1239, 1142, 2579, 1801, 3789, 5706, 5215, 6074, 6157, 6448, 6632, 6526, 6484, 6334, 5657, 4952, 4108, -3907, 3529, 3379, 3046, 3952, 2638, 449, 673, 696, 862, -250, 873, -355, 1804, -777, 1252, -235, 545, 767, 763, 370, 2116, -2146, 3959, 4513, -4403, 4747, 4863, 5112, 5363, 5035, 4714, 4442, 4087, 3780, 3264, 3331, 3304, 3384, 3243, 3448, 3068, -1132, 2053, 1694, 1611, 1049, 2194, 2513, 2079, -1057, 2317, 3104, 1844, 2162, 1163, 1044, 3068, 933, 5518, 4215, 4529, 4575, 4652, 4712, 4844, 4656, 4540, 4403, 4310, 4223, 4094, 4154, 4142, 4149, -4147, 3969, 5140, 616, -1119, -3292, 1615, -1000, -3153, -3286, -3118, -2550, -3136, -3201, -3003, -1003, 2118, -3045, -1234, 4970, 7636, 8384, 6887, 7214, 7448, -7651, 7826, 7901, 7985, 7769, 7644, 7532, 7427, 7317, 7184, 7095, 7009, 6927, 6847, 6684, 6498, 7882, 7589, 5440, 7695, 7560, 5510, 5659, 5660, 5688, -5938, 6076, 6137, 7754, 7865, 5945, 8099, 8283, 8577, 8302, 9088, 9588, 10219, 10449, 10468, 9845, 9419, 9121, 8821, 8481, 8111, 7816, 7568, 7339, 7111, -6638, 6924, 6498, 6278, 6559, 5955, 5810, 6044, 5921, 6312, 6335, 6290, 6009, 6251, 6628, 6819, 7238, 7455, 8306, 8629, 8582, 10147, 11301, 12666, 13060, -13217, 12137, 11289, 10678, 10068, 9512, 8807, 8285, 7777, 7333, 6755, 5961, 5736, 5546, 4645, 4706, 4260, 3764, 3925, 3474, 3856, 3954, 3830, 4173, 4607, -4998, 5444, 6167, 7132, 7674, 9106, 9133, 11156, 13182, 15500, 16251, 16101, 14001, 12486, 11578, 10769, 9758, 8734, 7967, 7242, 6604, 5745, 4803, 4313, 3201, -2701, 1831, 1618, 1212, 935, 865, 676, 1163, 1183, 1690, 2355, 3129, 4091, 4303, 5937, 10460, 10006, 11382, 14401, 16737, 17136, 17995, 19064, 19964, 19432, -16704, 16218, 15507, 15151, 13595, 12424, 11456, 9908, 7946, 6249, 4411, 3482, 2860, 2027, 1510, 1080, 1078, 1217, 1769, 1735, 2332, 2972, 3747, 4925, 5754, -8130, 11316, 13433, 15078, 18086, 19359, 20025, 20935, 21682, 22827, 22362, 20633, 20252, 18860, 16902, 14667, 12673, 11024, 9766, 8527, 7346, 6209, 4773, 3914, 2820, -2165, 1683, 1494, 1531, 1534, 1951, 2175, 3419, 4192, 5945, 7327, 9528, 13409, 16940, 15037, 15820, 13684, 15786, 16788, 18802, 20507, 21621, 21053, 18294, 15615, -13352, 11880, 10899, 10545, 8951, 7247, 6854, 6473, 5199, 4991, 3756, 3074, 2607, 2092, 2244, 3269, 2271, 2603, 3226, 4617, 6785, 9024, 9647, 14890, 14613, -10138, 12386, 10434, 14501, 17581, 21185, 20566, 19568, 17558, 16901, 15783, 14157, 13071, 11502, 9160, 8011, 6846, 7399, 6437, 6007, 5508, 4256, 3663, 2770, 2399, -2510, 5572, 3352, 2865, 3702, 4108, 6057, 7229, 9433, 13803, 13004, 12551, 15587, 15432, 17889, 18935, 20238, 19330, 18551, 17143, 15713, 14237, 13006, 11153, 10006, -8939, 9785, 9473, 9564, 7306, 7185, 5376, 4803, 4877, 3775, 2919, 3470, 3338, 4026, 4509, 5502, 6033, 6435, 7828, 10653, 13949, 13721, 14150, 15879, 16131, -17845, 18420, 18493, 18761, 18499, 17696, 15893, 14019, 12338, 10902, 10008, 9593, 10593, 10917, 9696, 8405, 8257, 7229, 6273, 4873, 3815, 3735, 3420, 5465, 4572, -4817, 5602, 6217, 7739, 8479, 11122, 11103, 13326, 14075, 14926, 15679, 16081, 16357, 16729, 16027, 15344, 14697, 14030, 13393, 12537, 12204, 11753, 11095, 10610, 10431, -9961, 8727, 7872, 7329, 6888, 5349, 6429, 4764, 6837, 5237, 5947, 5257, 5490, 6778, 7667, 8594, 10369, 9049, 13031, 12500, 12917, 13127, 13416, 13698, 14134, -13853, 13734, 13563, 13312, 13047, 12731, 12373, 12004, 11705, 11503, 11124, 11201, 7522, 9653, 10071, 9454, 8928, 9744, 9810, 10356, 9617, 10350, 10117, 9427, 10101, -9730, 10221, 11620, 11891, 12128, 11661, 11992, 11985, 12110, 12174, 12298, 12146, 12044, 11929, 11844, 11763, 11696, 11647, 11614, 11530, 11481, 11156, 11658, 11480, 10212, -5647, 11776, 10291, 6196, 6283, 6216, 6524, 6461, 6584, 6680, 10406, 12263, 6268, 10376, 12991, -810, 624, -1670, -735, -1114, -1088, -1286, -1365, -1563, -1231, --1070, -908, -854, -817, -816, -867, -875, -866, -792, -459, -1260, 982, 2787, 7024, 86, 2472, 6485, 6412, 6289, 5915, 6058, 6099, 5984, 2392, -490, -6613, 2729, 4130, -1377, -1270, -1648, -1883, -2543, -2797, -3078, -2101, -1494, -1014, -800, -719, -788, -965, -982, -947, -636, -393, -348, 3930, 1123, 838, -1409, 1809, 441, 388, 197, 1041, 8, -356, 772, 481, 1608, 1472, -402, 1095, -213, -1468, -1601, -2302, -3933, -4430, -5209, -3208, -1844, -1015, -622, --586, -720, -1092, -1168, -1127, -395, -172, 1102, 2081, 2321, 1728, 1526, 2284, 1119, 2361, 674, 2217, 777, 1738, 1209, 1606, 1655, 1677, 391, 2403, -520, -885, -1671, -3206, -6107, -7164, -7915, -4199, -1698, -257, 241, 451, -37, -727, -889, -845, -5, 661, 1622, 2829, 1807, 2438, 1550, 1263, 1112, -1102, 1234, 839, 977, 728, 973, 1461, 1683, 1804, 844, -360, -3734, -4343, -4974, -5788, -5913, -6259, -7339, -7775, -6796, -1798, -3369, -3659, -3504, -3813, --3642, -3293, -1409, -537, 1300, 3688, 2346, 2015, 1718, 1644, 1327, 1411, 1191, 864, 633, 433, 878, 423, 926, 725, 586, 3983, -1953, -9786, -10321, --8728, -7439, -7400, -8697, -8818, -8357, -6443, -7952, -8753, -9352, -7959, -6165, -4701, -1668, -703, 1435, 3052, 2334, 1717, 832, 531, 709, 618, 1073, 2130, -1717, 2301, 2426, 2871, 1508, 2928, 1189, 1781, -6428, -9328, -7090, -2734, -1504, -1005, -4178, -4524, -7207, -11297, -12695, -12495, -11086, -9158, -7321, -6037, -2972, --1422, 1259, 1796, 2188, 2914, 1936, 1934, 2615, 2974, 2816, 3610, 2177, 2188, 2546, 3779, 1097, 2815, 858, -66, -4557, -1884, 620, 9476, 4285, 334, --4422, -5308, -7017, -7666, -9452, -9960, -8932, -8025, -6123, -3583, -1762, -821, 590, 4058, 2958, 2891, 2804, 2281, 2493, 1269, 2501, 4918, 2576, 2253, 1820, -3071, 1541, 3450, 2018, -26, -3935, -1947, -1123, 1309, 1153, 530, -3307, -4275, -6587, -8138, -8057, -7307, -6376, -4089, -2468, -1556, -1517, -1373, 502, 5042, -2697, 4089, 3906, 2709, 3012, 2971, 2830, 5106, 3054, 2696, 1743, 1970, 2632, 3021, -1021, 4310, -1112, -2207, -299, 1364, 630, -230, -2008, -3310, -3868, --4061, -4457, -4078, -3129, -2261, -1286, -724, -262, -1417, 1866, 5193, 2177, 3918, 2864, 3197, 3682, 3716, 4411, 2158, 3927, 3629, 2149, 3060, 2201, 3018, -804, 4907, 1424, -180, 1117, 1054, -232, -1250, -1940, -2037, -2173, -2250, -1444, -779, 100, 435, 1107, 1627, 1706, 123, 1397, 4321, 4143, 3939, 3672, -5676, 3242, 5761, 1857, 5583, 3105, 5530, 4553, 4698, 4887, 5842, 3778, 10768, 415, 584, 677, 534, 668, 717, 603, 994, 1333, 1596, 2069, 2515, -3266, 2986, 2763, 2437, 2232, 1811, 1691, 9470, 3290, 2946, 3302, 3872, 1230, 1059, 1243, 3186, 1271, 522, 2667, 2378, 4561, 4694, 1484, 3804, -2194, --51, -573, -533, -526, -505, -511, -256, -38, 213, 356, 480, 706, 399, 241, 82, -45, 255, -1819, 3930, 7198, 13828, 1911, 6550, 12703, 12860, -12701, 11867, 12591, 12683, 12340, 6714, 1185, 13524, 7752, -1009, 1875, 745, 2618, 1879, 1988, 1795, 1907, 1886, 1828, 1600, 1461, 1370, 1375, 1413, 1537, -1599, 1681, 1760, 1822, 1728, 2187, 554, -423, -1948, 985, -324, -1796, -1771, -1721, -1507, -1780, -1870, -1801, -358, 1329, -2020, -541, -959, 2604, 2597, -2498, 2203, 2349, 2125, 1925, 1438, 1176, 1055, 1050, 1209, 1583, 1761, 1940, 2090, 2184, 2233, 2039, -203, 1153, 1064, 909, 710, 1170, 1373, 1376, -981, 1402, 1674, 1097, 1133, 539, 605, 2030, 1869, 3114, 3916, 3045, 2340, 2770, 2524, 2156, 884, -13, -230, -260, 24, 707, 1098, 1595, 1975, -2218, 2432, 1809, 1078, 978, 895, 1118, 775, 976, 772, 1636, 835, 1317, 549, 995, 759, 1002, 964, 2152, 1850, 3255, 4223, 3651, 2582, 2754, -2192, 1800, 419, -267, -340, -103, 329, 1457, 1952, 2399, 2751, 2979, 2923, 2398, 1590, 1489, 1098, 1282, 1356, 1079, 1153, 1080, 1541, 1070, 1222, -1352, 947, 859, 1369, 3124, 4865, 11079, 10990, 8821, 7840, 7660, 6093, 4357, -348, -3913, -7972, -6968, -6433, -6123, -4460, -2604, -803, 175, 1129, 888, -448, 1065, 1325, 974, 722, 774, 1033, 1201, 1190, 1076, 1595, 1928, 3664, 3647, 4319, 4275, -331, 6297, 15669, 14493, 11409, 7082, 4094, 4137, -441, --2292, -3808, -2537, -656, 2038, 3385, 3848, 3888, 2950, 2906, 2015, 177, 388, 612, 1347, 1373, 639, 1078, 1178, 1872, 1722, 1643, 1707, 1107, 2388, -1362, 3266, 2632, 10549, 14082, 9793, 3654, 3640, 4073, 5519, 2455, 1403, 2526, 4958, 6217, 6692, 7003, 7114, 6933, 6338, 6101, 3776, 2718, 2308, 613, -1234, 975, 539, 1202, 1600, 2679, 1742, 1415, 1427, 273, 2338, 512, 3585, 5160, 8142, 2822, -189, -5657, -2270, -1354, -830, -221, 1509, 3321, 5372, -6387, 6453, 6022, 5732, 6285, 6080, 6083, 3896, 1280, 1693, 1336, 1409, 1441, 1523, 1468, 1642, 2547, 1995, 2135, 2570, 2019, 2625, 2043, 3431, 3109, -2482, -2237, -3768, -4896, -5525, -5947, -4622, -3252, -600, 2566, 4390, 5635, 6200, 6607, 6477, 6664, 4165, 2788, 680, -797, 13, 310, 105, 191, 647, -1798, 1721, 1393, 1051, 1038, 736, 2041, 2636, 2384, 3617, -1124, -1557, -3300, -4371, -5390, -5314, -5063, -3883, -1660, -255, 1014, 2807, 4163, 4884, 5623, -5424, 4711, 1809, 867, -967, -1573, -453, -1231, 33, 727, 1114, 1274, 1049, -244, 110, 381, 1193, 8, -409, -314, -539, -2641, -3482, -3990, -4725, --5662, -4199, -2882, -1822, -315, 1168, 2722, 2940, 3297, 3855, 2981, 2169, 1715, 1201, 1063, -30, -856, -470, -365, -218, -115, -163, 69, -123, -12, -281, 240, 447, 25, -93, -622, -1863, -3264, -4139, -3870, -4014, -4109, -4357, -4733, -5050, -4958, -4947, -4814, -4685, -4515, -4350, -4080, -3684, -3401, -3232, --2961, -2840, -2076, -2088, -2242, -2080, -1850, -1865, -1882, -2205, -2348, -2396, -2223, -2428, -2721, -3098, -3161, -3367, -4217, -3494, -3496, -3582, -3538, -3636, -3658, --3749, -3673, -3643, -3641, -3556, -3486, -3438, -3352, -3324, -3259, -3181, -3055, -2956, -3639, -3819, -2706, -3518, -3793, -2998, -3084, -3054, -3035, -3160, -3250, -3231, --3978, -3808, -3088, -4256, -3688, 2091, 2440, 1620, 1998, 1937, 2010, 1741, 1676, 1764, 1910, 2002, 2046, 2098, 2133, 2131, 2121, 2081, 2027, 1923, 1879, -1687, 2243, 2441, 2427, 2146, 2409, 2387, 2470, 2492, 2483, 2548, 2601, 2611, 2473, 2097, 2778, 2815, 3640, 2012, 1991, 1988, 1991, 1426, 1426, 1813, -2074, 2287, 2350, 2504, 2541, 2507, 2531, 2441, 2275, 2036, 1834, 1828, 2446, 2076, 2129, 2057, 2061, 1914, 1980, 2044, 2201, 1901, 1677, 1902, 2023, -2411, 2730, 2139, 3118, 1982, 1208, 1718, 1948, 893, 646, 1508, 2087, 2479, 2404, 2696, 2975, 3078, 3192, 3033, 2702, 2220, 1748, 1713, 2109, 1837, -1971, 1798, 1753, 1518, 1788, 1727, 2040, 1463, 1688, 1745, 2009, 2170, 2968, 2581, 3154, 1646, 318, 801, 1436, 599, 714, 1909, 2197, 2225, 2049, -2282, 2493, 2619, 2948, 2853, 2433, 1861, 1399, 1269, 1929, 1770, 1462, 1484, 1359, 1045, 1287, 1253, 1422, 881, 664, 910, 1444, 2317, 2688, 1511, -6281, 20, -2628, -1399, -3096, -5808, -5998, -3851, 722, 4081, 4757, 5412, 6218, 7257, 7385, 6840, 6014, 4350, 3243, 2708, 2007, 1917, 1702, 1553, 1357, -794, 1232, 1425, 1732, 1766, 2074, 2924, 2008, 3134, 3311, 4731, 7199, 270, -11330, -11103, -13455, -9057, -5363, -2302, 2116, 4540, 6224, 6631, 6498, 5838, -4970, 4209, 3612, 2678, 2146, 2574, 3010, 2452, 2213, 1617, 1413, 1351, 1726, 1710, 1749, 1546, 1659, 1024, 2264, 1246, 2825, 1556, 1956, -8167, -19228, --16558, -14475, -12577, -12190, -10930, -6312, -2968, -387, -97, 827, 1956, 2254, 2434, 2444, 2429, 1903, 2819, 3385, 2781, 2546, 2107, 1659, 765, 491, 1019, -2677, 1823, 1802, 1704, 3485, 553, 3900, -1554, -5289, -14616, -13247, -11723, -9908, -10876, -10297, -8642, -7558, -6867, -6046, -5685, -4116, -1832, 534, 1872, 1504, -2264, 2106, 2766, 2881, 1604, 1678, 1698, 1754, 1358, 2285, 1889, -165, 927, 1179, -368, 1130, -1015, 226, -3320, -6429, -8484, -7934, -7886, -7472, -5579, --3307, -1355, -549, -1289, -3404, -3764, -3604, -2529, -2203, -965, 453, 2556, 2911, 2455, 2170, 1947, 1817, 1368, 1393, 983, 1264, 1033, 266, 765, 531, -68, -1304, -1882, -2507, -6176, -2445, -4374, -4147, -4434, -4349, -2896, -1371, -84, -291, 226, 667, 47, -446, -271, -847, -812, -417, 943, 1328, 1834, -1244, 819, 1132, 453, 287, 491, 428, 347, 511, 349, 477, 284, 272, -350, -1033, -1884, -2843, -2225, -1896, -2211, -2224, -2303, -2672, -3005, -3442, --3973, -4579, -4502, -4385, -4315, -3872, -3414, -3293, -2792, -2664, -1331, 82, -468, -368, -131, 77, 26, -71, 15, -186, -261, -584, -570, -1304, -1770, --2513, -2297, -2356, -145, -361, -526, -641, -761, -775, -813, -841, -816, -834, -910, -1023, -1082, -1142, -1272, -1323, -1160, -1090, -1189, -1957, -997, -725, --844, -676, -16, 64, 51, -119, 196, 455, 149, 55, -515, -712, -115, -1102, 531, -22, 25, -42, -109, -195, -276, -399, -525, -631, -755, --872, -1032, -862, -691, -553, -527, -480, -173, -1290, -1761, -2995, -536, -1406, -2594, -2624, -2555, -2483, -2562, -2633, -2540, -1366, -197, -3179, -1822, 238, -556, 661, -267, -101, -190, -167, 202, 467, 731, 889, 994, 1030, 904, 807, 722, 662, 605, 565, 509, 546, 363, 1117, 1450, 2099, 892, -1364, 1953, 1985, 1962, 1872, 1837, 1810, 1764, 1326, 589, 1952, 1178, 897, -933, -1155, -1105, -918, -7, 749, 1357, 1859, 1991, 1845, 1477, 1237, -1074, 917, 816, 764, 629, 572, 690, 1597, 1051, 1085, 1046, 1166, 921, 975, 1020, 1190, 893, 725, 810, 554, 654, 727, 15, -979, -2079, --2953, -2904, -2742, -963, 630, 1807, 2951, 3646, 3786, 3234, 2557, 2065, 1558, 1191, 984, 708, 641, 1005, 1281, 1482, 1270, 1070, 1247, 966, 1444, -1100, 1543, 964, 1005, 731, 542, 380, 152, -735, -1485, -2951, -3534, -3531, -3340, -824, 1437, 3227, 4844, 5403, 4860, 3784, 3046, 2465, 1849, 1446, -1318, 874, 888, 1218, 1359, 1296, 1675, 1243, 1094, 1012, 1257, 1340, 1281, 898, 667, 499, 24, -172, -208, -955, -6288, -7598, -7591, -8789, -7824, --4245, -1733, -245, 1309, 3149, 7285, 7031, 6267, 4718, 3035, 1780, 1051, 740, 694, 1513, 2468, 1959, 1723, 1568, 1464, 1050, 1469, 1421, 1186, 837, -327, -39, -532, -1388, -2154, -3609, -8441, -7927, -1491, -1190, 1937, -682, -3330, -7629, -6325, -4682, -2244, -1167, 117, 1077, 1651, 2073, 2063, 2219, 1904, -1615, 1834, 1817, 1387, 1317, 1188, 860, 1183, 1362, 1775, 1247, 971, 681, -125, -1095, -2739, -4547, -7962, -1727, 10336, 8722, 8326, 1798, -1862, -5063, --6670, -6144, -4963, -3930, -3234, -2938, -2748, -1854, -146, 556, 987, 1461, 1295, 1266, 1811, 1571, 1602, 1405, 1451, 1424, 1598, 526, -33, -46, -2127, --1828, -5430, -2256, -1050, 8997, 9614, 6111, 2083, 2727, 3179, 2861, 1827, 1341, 505, 1609, 1421, 165, -234, -419, -90, -548, -864, 109, 1391, 909, -825, 686, 559, 532, 1440, 1591, 485, 1378, 888, 576, -601, 572, -1817, -422, 2361, 6034, 5651, 4195, 3452, 2352, 1349, 1275, 1016, 2280, 4501, -4651, 4150, 3008, 1811, 313, -1521, -1227, -1032, 241, 1573, 469, 517, 1094, 1065, 990, 966, 995, 556, 299, 240, 1063, 734, 397, 362, 4416, --826, 3641, 3707, 2877, 2899, 1069, 88, -335, 140, -12, -95, 276, 402, -17, -749, -1111, -1367, -758, -378, -164, 567, 666, 800, 559, 658, -885, 373, 206, 786, 658, 509, 350, 379, 805, 271, 1093, 1570, 1770, 2249, 2213, 2475, 2035, 1823, 1437, 1334, 1350, 1470, 981, 451, -147, -132, 217, 415, 305, 975, -90, -1354, -466, -192, 76, -234, 628, 136, 1024, 305, 655, 224, 312, 675, 852, 1166, 1633, 653, 2302, 2296, -2346, 2443, 2508, 2598, 2716, 2592, 2382, 2201, 2007, 1857, 1429, 1630, 1755, 1960, 1955, 2185, 2313, -11, 1505, 1537, 1665, 1395, 1914, 1817, 1852, -1600, 1835, 1769, 1590, 1638, 1512, 1506, 1844, 2214, 2372, 2103, 2232, 2233, 2304, 2355, 2431, 2432, 2471, 2489, 2525, 2572, 2621, 2594, 2516, 2454, -2465, 2287, 2745, 1868, 1363, -4, 2090, 1489, 486, 502, 534, 665, 627, 695, 733, 1548, 2160, 564, 1627, 2456, -657, -450, -207, -221, -158, --157, -571, -866, -1227, -1304, -1323, -1230, -1063, -933, -847, -768, -713, -694, -623, -543, -659, -512, -329, 355, -604, -336, 295, 315, 327, 277, -297, 255, 235, -406, -481, -50, -451, -874, 221, 756, 662, 574, -522, -1459, -2407, -2836, -2788, -2263, -1717, -1367, -1240, -1048, -922, -893, -673, --574, -551, 101, -337, -316, -231, -116, -251, -131, -124, -11, -71, -84, -40, -255, -297, -500, -125, 14, 701, 2694, 2199, 2028, -215, -2105, --3978, -4750, -4648, -3861, -2970, -2193, -1941, -1470, -1226, -1151, -663, -582, -223, 28, -21, -169, -80, 230, 12, 545, 394, 687, 617, 724, 687, -124, 19, -69, 575, 497, 1909, 4423, 3867, 3376, -238, -3236, -6198, -7392, -6663, -4556, -2895, -2031, -1922, -1582, -1258, -1240, -670, -558, 112, 942, -357, 956, 556, 622, 544, 966, 1246, 1233, 1112, 1039, 1126, 293, -96, 436, 1468, 787, 4507, 5820, 6029, 5915, 2787, 229, -2440, -4576, -6990, --9475, -8132, -6855, -4826, -3812, -2879, -2456, -993, -704, -488, 135, -394, 280, 426, 818, 821, 1063, 1022, 913, 1043, 1239, 1231, 1924, 1823, 1367, -180, 1443, 3613, 1587, 719, -2342, -2477, -1384, 2052, -1130, -4147, -8387, -7802, -7984, -8002, -6474, -4901, -3488, -2405, -2188, -1014, 431, 457, 867, 674, -866, 990, 1248, 1341, 1271, 508, -45, -635, -938, -681, -453, 849, 4950, 1006, -9893, -9923, -11138, -2479, 2661, 7990, 8038, 6645, 4246, 3277, 1858, -391, 443, -72, -1057, -1985, -2912, -2173, -1589, -1465, -471, 35, 604, 448, 1664, 1603, 343, 1081, 1225, 455, 1637, 1452, 3279, 653, 804, -7732, --8989, -4945, -2553, -599, 1109, 4351, 6334, 8111, 9656, 7833, 6391, 5371, 3967, 2436, 1086, 601, -202, -1811, -1145, -1111, -1273, -845, -551, -469, 839, -1370, 580, 1245, 1151, -314, 596, -650, 685, -501, -216, -2525, -1760, -1103, -2571, -1367, 30, 1727, 3658, 4419, 4002, 4486, 4787, 4549, 4471, 3858, -3170, 443, -958, -2031, -1771, -1252, -463, -323, 70, 784, 1057, 1137, 1520, 1433, 1440, 857, 766, 556, 572, -2447, 2503, -1382, -1235, -605, -1358, --254, -12, 91, 37, 659, 1292, 1360, 1535, 2017, 2555, 2705, 2809, 1520, 1058, 698, 274, 750, 593, 1428, 1543, 1142, 1310, 1243, 960, 534, -372, 410, 914, 932, 1341, 754, 262, -10, -463, -144, -137, 117, 380, 827, 976, 1066, 1176, 1836, 2511, 3218, 2998, 2924, 2933, 3261, 3258, -3607, 3452, 3266, 3101, 2480, 2134, 1565, 1602, 776, 1160, 692, 1099, 745, 622, 508, 499, 19, 2171, -92, -143, -89, -143, -126, -173, -268, --37, 243, 458, 730, 945, 1385, 1437, 1568, 1555, 1528, 1351, 1539, 2706, 1422, 1255, 1134, 1103, 459, 387, 439, 677, 329, 111, 479, 422, -825, 935, 345, 718, -283, 202, 95, 110, 97, 100, 75, 200, 278, 382, 451, 516, 586, 524, 506, 512, 551, 642, 336, 1523, 1988, -2889, 861, 1596, 2476, 2526, 2460, 2319, 2417, 2413, 2311, 1400, 386, 2494, 1482, 230, -433, 13, -422, -259, -379, -429, -584, -609, -537, -504, --498, -516, -521, -523, -497, -534, -534, -519, -535, -522, -532, -360, -334, -488, -272, -237, -388, -325, -297, -313, -255, -222, -240, -100, -143, --155, 71, 1125, -97, -300, -349, -564, -1006, -1094, -781, -721, -657, -700, -720, -682, -562, -624, -673, -696, -755, -777, -714, -501, -485, -381, --304, -210, -139, -49, 33, 26, 46, -44, -59, 123, 312, 538, 249, 1397, 322, -884, -647, -896, -1688, -1625, -1006, -1100, -1376, -1636, -1681, --1612, -1267, -1306, -1210, -1093, -1190, -1184, -1011, -724, -554, -518, -272, -45, 38, 278, 286, 386, 349, 479, 293, 545, 618, 1154, 761, 2701, -582, -1195, -492, -708, -2009, -2417, -1309, -1498, -1791, -2145, -2170, -1843, -1148, -1099, -1133, -1091, -1260, -1344, -1343, -636, -609, -310, 34, 269, 172, -693, 1009, 954, 829, 764, 733, 1296, 2025, 2060, 1424, -1102, -6063, -7612, -7338, -7505, -4674, -2271, 182, -1054, -1666, -2842, -4287, -4853, -5385, -4181, --3427, -3135, -2754, -2392, -1996, -1036, -690, -162, -14, 364, 718, 917, 975, 897, 957, 713, 401, -1016, -1199, -1727, -981, -2192, -5892, -7014, -5454, --1046, 434, 1314, 1972, 5060, 7761, 11044, 9082, 8003, 6931, 4866, 2666, 736, -722, -1021, -1401, -2127, -1171, -738, -123, 405, 599, 1233, 1280, 714, -530, 233, -74, 494, -171, -514, -2332, -7030, -5816, 4889, 7177, 11252, 5578, 3634, 1656, 3769, 5626, 7869, 8616, 9538, 10159, 9819, 8357, 5881, 3516, -2557, 147, -1213, -1311, -2181, -1434, -1142, -903, 661, 1112, -183, 1125, 750, -472, -1004, -1685, -3285, -2664, -2922, 3616, 7488, 4707, 4935, 1121, -592, --2292, -2060, -1960, -2353, -490, 939, 2031, 1785, 1962, 2602, 1920, 1856, 1416, -679, -57, 146, 320, 702, 553, 1149, 915, -697, 467, 351, 188, --327, 34, -1020, -819, -132, 1211, 1424, 1684, 3038, 56, -1902, -3903, -5107, -5726, -5622, -4998, -4391, -3314, -2048, -850, 194, 1025, 1558, 1831, 685, -1280, 1007, 531, 436, 207, 487, 506, 740, 828, 383, -213, -53, -159, -674, 876, -1167, 965, 689, 157, 100, -638, -703, -874, -1301, -2032, --2647, -2712, -2733, -2888, -2483, -2073, -1533, -502, -292, 349, 1059, 343, 540, 315, 257, 485, 819, 948, 400, 715, 606, 218, -299, -428, -321, --162, -204, -365, -475, -938, -1249, -1274, -1513, -1850, -1655, -1475, -1368, -1549, -1740, -1957, -1627, -1304, -1152, -1255, -1818, -1237, 51, -361, -418, -284, -323, -259, 209, -46, 227, 161, 15, 33, 93, 129, 167, 92, -946, -570, -466, -513, -530, -577, -537, -501, -527, -608, -631, -676, -662, --686, -766, -883, -921, -803, -731, -813, 346, -256, -201, -244, -26, -95, -120, -251, -241, -398, -391, -524, -540, -613, -770, -737, -462, -538, --632, -627, -624, -648, -689, -726, -799, -848, -903, -935, -979, -1017, -948, -880, -846, -869, -790, -1006, -704, -477, 142, -573, -358, -18, -106, --133, -210, -239, -276, -303, -532, -572, -231, -474, -721, 23, -817, -190, -347, -357, -480, -129, 40, 216, 226, 279, 304, 340, 342, 353, -310, 270, 227, 158, 75, 302, -521, -735, -843, -407, -702, -709, -733, -707, -672, -726, -758, -798, -696, -461, -668, -861, -1235, -1202, -1203, --1441, -1627, -678, -131, 300, 417, 495, 486, 637, 738, 818, 771, 683, 604, 386, 371, 225, -791, -164, -303, -287, -314, -5, -4, -44, --215, 52, 139, -226, -352, -622, -621, -577, -1929, -2154, -2047, -2386, -2840, -752, 211, 1131, 1164, 1400, 1480, 1789, 1848, 1907, 1687, 1424, 1183, -711, 682, 220, -441, -282, -142, -244, -296, 279, 52, 243, -78, 312, 30, -321, -417, -457, -871, -1383, -2980, -3702, -3621, -4898, -5808, -2586, --529, 873, 1075, 950, 668, 1291, 1781, 2186, 2133, 1906, 1671, 1132, 1094, 605, -651, 54, -444, -88, 85, 433, 591, 832, 728, 883, 816, -131, -360, -980, -1181, -1629, -3252, 821, 3035, 3386, 5795, 6058, 5488, 4305, 5683, 6944, 8576, 8608, 8056, 7228, 5434, 4087, 3241, 1783, 1373, 366, --865, 213, -21, 291, 454, 788, 1041, 960, 545, 387, -232, -1062, -426, -921, -1077, -2164, -1555, 3033, 8504, 7438, 5104, 2870, 1959, 651, 474, -1188, 1770, 4538, 5861, 6440, 5563, 4563, 3110, 2650, 2257, 1569, 602, 3, 118, 377, 631, 465, 937, 1031, 648, 440, 246, 271, -396, -32, --540, 664, 5033, 6674, -256, -3469, -6787, -5087, -4102, -2681, -5028, -6302, -8005, -8259, -8073, -6743, -6315, -4976, -3210, -1573, -1094, 729, 1200, 872, 770, -312, 180, -258, 522, 804, -354, 966, 823, -26, 75, 1260, 1505, 2326, 3114, -1187, -4859, -3496, -5077, -2937, -2660, -2398, -3673, -4649, -5332, -6262, --6913, -7003, -6261, -5347, -4777, -3887, -3281, -1131, 785, 16, 566, 262, 315, 614, 574, 711, -174, 782, 888, 653, 769, 390, 743, 1285, -807, --2070, -2298, -2323, -2751, -725, -83, 221, 414, 397, -19, -1661, -2660, -3228, -3912, -3922, -3799, -2780, -2230, -1360, 523, -499, -349, -102, -282, -168, --101, 120, 239, 404, 426, 379, 215, 121, 394, -1274, 357, -1232, -1093, -762, -475, -569, -946, -997, -338, 98, 201, -17, -151, -153, -341, --643, -1384, -1823, -2003, -1721, -1599, -1590, -1135, -1108, -610, -194, -182, -106, -3, 235, 316, 246, 88, -216, -376, -526, -56, 114, -117, -196, --362, -415, -264, -90, -387, -597, -709, -601, -489, -280, -527, -720, -761, -925, -944, -1421, -1615, -1262, -1147, -891, -773, -505, -251, -12, 402, -216, 278, 244, 145, 64, -87, -137, -160, -402, -437, -340, -287, -226, -277, -283, -378, -423, -507, -560, -650, -726, -766, -795, -870, -947, --957, -970, -938, -796, -768, -671, -585, -495, -486, -501, -424, -398, -282, -224, -232, -251, -198, -204, -574, -450, -383, -385, -376, -363, -326, --277, -279, -282, -290, -319, -341, -368, -402, -439, -465, -490, -541, -572, -710, -741, -701, -600, -665, -544, -533, -525, -548, -526, -553, -541, --477, -429, -610, -572, -491, 1747, 1516, 1889, 1740, 1948, 2065, 2049, 2047, 2125, 1897, 1774, 1667, 1603, 1567, 1525, 1542, 1526, 1477, 1520, 1480, -1487, 1479, 1173, 248, 1536, 1183, 374, 355, 366, 396, 461, 449, 390, 1124, 1653, 118, 1026, 257, 2320, 2509, 2839, 3143, 3045, 3048, 3181, -2706, 2356, 1999, 1671, 1420, 1254, 1268, 1267, 1172, 1310, 1261, 1338, 1016, 1168, 1295, 1027, 997, 1407, 1324, 1405, 1219, 1489, 1475, 1128, 1289, -1085, 974, 1387, 1048, 2293, 3712, 4010, 4674, 4369, 4241, 4531, 3739, 3242, 2668, 2075, 1747, 1408, 1337, 1219, 901, 1139, 972, 928, 1146, 751, -751, 579, 534, 1027, 631, 879, 580, 1003, 857, 551, 609, 529, 548, 1245, 674, 3126, 5036, 5658, 6629, 6012, 6008, 6384, 5314, 4574, 3640, -2259, 1239, 529, 383, 239, -145, 238, 152, 365, 814, 361, 396, 15, 120, 571, 513, 583, 474, 845, 743, 233, 392, 347, 479, 920, -4452, 4788, 4120, 4774, 3823, 2680, 2208, 1689, 2280, 2378, 2100, 3537, 3859, 3607, 3013, 2568, 2175, 1841, 1128, 1396, 1339, 523, 582, 402, 556, -691, 790, 708, 346, 413, 731, 1154, 1317, 1636, 2317, 3061, 3066, -40, -6656, -6957, -6535, -3312, -1529, -330, -1229, -3220, -4813, -6985, -7993, -7890, --7299, -6258, -5190, -3470, -2311, -504, 1248, 1202, 988, 469, 451, 734, 756, 926, 601, 702, 641, 524, 800, 920, 1509, 1027, -1575, -4650, -2703, -180, 3650, 917, -999, -2588, -877, -182, 1035, 733, 300, -758, -1966, -2618, -2837, -2531, -2238, -1831, -1022, -299, 564, 497, 688, 918, 1045, 1100, --115, 1253, 1206, 345, 1158, 309, 679, -285, -2530, -552, 1677, 1461, 4416, 1369, 778, -251, 1037, 1771, 2504, 2307, 1904, 957, 928, 446, -98, --403, -600, -1357, -1544, -1020, -1381, -954, -517, -14, 124, 233, -219, 507, 559, 368, 218, 125, -84, -973, -74, 555, 1876, 2033, 2012, -22, --619, -707, -658, -638, -499, 798, 1384, 1093, 1087, 732, 341, -441, -522, -1016, -1804, -1067, -872, -417, 41, 297, -103, -198, -79, 392, 623, -824, 292, -7, -251, 614, -938, 736, 1326, 975, 169, -100, 55, 233, -552, -771, -450, -135, -46, -93, -701, -870, -638, -348, 146, -215, --690, 118, 81, 65, -98, -28, 187, 279, 197, 117, 98, 184, -133, -175, -239, -258, 147, 137, 298, 287, 449, 350, 70, -245, -237, --289, -416, -599, -727, -841, -776, -826, -1023, -690, -184, 68, -230, -108, 74, 130, -11, 378, -24, 130, -207, 57, 17, 180, 161, 128, -94, 232, -681, -407, -395, -481, -515, -595, -569, -584, -543, -541, -526, -551, -598, -694, -599, -474, -311, -264, -231, -238, -818, -370, -333, --229, -310, -169, -149, -111, -235, -137, -136, -193, -250, -330, -412, -411, -202, -204, -286, -290, -318, -325, -352, -386, -390, -393, -387, -365, --327, -301, -255, -242, -222, -188, -163, 29, -166, -258, -544, -171, -255, -485, -471, -444, -354, -368, -338, -293, -230, -182, -324, -253, -255, --554, 441, -634, -254, -389, -318, -666, -792, -846, -830, -812, -755, -766, -762, -751, -751, -728, -689, -646, -532, -850, 175, 793, 1933, -64, -772, 1890, 1855, 1806, 1648, 1809, 1833, 1717, 806, -120, 1937, 1058, 1888, -121, -154, -199, -136, -933, -1240, -1307, -1343, -1246, -999, -938, -883, --880, -931, -903, -838, -709, -680, -725, 800, -100, -64, 139, 338, 80, -5, -4, 220, -30, -212, 27, 140, 581, 596, 102, 1530, 792, --172, -23, 182, -1433, -2007, -2320, -2496, -2451, -2127, -2065, -2029, -1918, -1858, -1694, -1441, -1099, -963, -714, -137, 75, -59, 22, 424, 363, 640, -92, 501, 285, 668, 152, 578, 737, 1041, 875, 2201, 927, -417, 50, 461, -1710, -2751, -3168, -3311, -3127, -2275, -1787, -1508, -1497, -1581, -1439, --1181, -810, -727, -826, -85, -352, 57, -219, -62, 335, 401, 563, 147, 616, 433, -62, 669, 1208, 1083, 1006, 426, -2830, -3588, -3836, -2171, --1546, -1221, -1480, -2763, -3585, -4295, -6493, -7321, -7286, -6337, -5619, -5140, -3802, -2740, -1637, -220, -423, -164, -96, 214, 693, 420, 482, 538, 754, -559, 217, -185, 46, 4, 1057, -2718, -2024, 1749, 3034, 4641, 3475, 2591, 775, 2004, 2290, 1369, 1208, 355, -1391, -2129, -2183, -1007, -1622, -1724, --1638, -1654, -927, -666, -409, -98, 437, 579, 817, 585, 1102, 1196, 1122, 661, -147, -837, -1297, -448, 1995, 2053, 574, -1096, 1435, 2083, 342, -962, 1362, 1079, 1838, 1867, 1438, 1943, 1763, 1472, 616, 491, -92, -362, -389, -493, -215, 130, 964, 810, 718, 2, 668, 345, 64, -377, --346, -725, -359, 1476, 790, -1824, -1767, -1906, 368, 434, -614, -1490, -2206, -2053, -1607, -968, -158, -226, -59, 305, 210, 258, 63, -465, -62, -218, 196, 379, 599, 363, 173, -250, 309, 514, 884, 444, 146, 216, 796, 275, -281, -1715, -1223, 512, 1263, 1091, -87, -280, -285, 161, --1149, -1572, -1070, -1023, -816, -272, 255, 562, 873, 471, 625, 169, 240, 376, 521, 367, 288, -226, 129, 151, 114, 286, 417, 442, 168, -428, -749, -601, 206, 1065, 881, 309, -583, -616, -884, -1194, -1390, -1530, -1759, -1169, -538, 302, 754, 791, 541, 640, 520, 257, 358, 272, -230, 113, 117, 309, 288, 356, 291, 432, 331, 65, -93, 560, 665, 400, 288, 134, -197, -377, -538, -438, -407, -452, -245, -108, -120, -174, 404, 665, 619, 720, 765, 553, 484, 351, 430, 503, 477, 489, 537, 382, 448, 335, 390, 290, 298, 243, 366, 23, 554, 411, -287, 173, 79, -36, -194, -204, -213, -192, -179, -147, -113, -33, 14, 86, 197, 287, 415, 158, 333, 286, 190, 126, 150, 223, 267, -277, 405, 473, 413, 447, 335, 303, 492, 44, 495, 325, 304, 259, 216, 181, 136, 153, 145, 131, 98, 62, 12, 58, 101, 133, -166, 178, 273, 25, -120, -310, 116, -94, -300, -296, -289, -266, -293, -292, -257, -20, 264, -351, -112, 326, -781, -1051, -849, -874, -923, --957, -808, -751, -780, -654, -621, -648, -637, -649, -673, -668, -662, -620, -668, -681, -561, -948, -1044, -962, -812, -944, -861, -891, -898, -897, --943, -958, -977, -963, -908, -881, -1038, -1022, -1623, -1712, -1760, -1709, -1188, -1005, -1117, -732, -668, -812, -783, -787, -783, -706, -657, -550, -680, --651, -640, -1007, -734, -758, -612, -566, -447, -469, -516, -582, -498, -489, -680, -811, -980, -999, -1029, -1304, -1709, -2092, -2172, -2338, -1449, -1163, --1422, -553, -424, -622, -592, -623, -660, -591, -523, -305, -595, -552, -549, -847, -693, -517, -276, -173, 85, -95, -46, -227, -41, -260, -452, --505, -628, -980, -1265, -2156, -3439, -3889, -4123, -4100, -2419, -1863, -2131, -739, -480, -1088, -1146, -1184, -1026, -671, -418, -126, -525, -541, -538, -804, --585, -559, -209, 49, 353, 365, 411, 284, 501, 270, -367, -758, -1192, -1594, -1677, -81, 3349, 5107, 4445, 1943, 1540, 419, -823, -1172, -1595, --1588, -736, -247, -312, -279, -357, -200, -292, -261, -1001, -1276, -625, -379, -159, 38, 592, 232, 297, 522, 223, 173, 432, 886, 639, 741, --125, 1314, 2754, 1191, 155, -173, -130, -38, 649, -1024, -1100, 888, 824, 1085, 1623, 1858, 1740, 1229, 573, 154, -538, -1038, -1052, -663, -175, -166, 785, 452, 431, 391, 939, 919, 429, 127, 542, 694, 1273, 1211, 314, -289, -316, -694, -713, -759, 7, -1134, -1582, -629, -1000, -667, -58, -211, -278, -455, 513, 794, 513, 625, 487, 268, 81, 228, 1134, 155, 21, 34, 584, 627, 888, 404, 639, 850, 1098, -257, 587, -1920, 1297, 471, 976, 1360, 2020, 1099, 570, 324, -582, -682, -191, -72, 12, -92, -104, 124, 479, 505, 628, 955, 580, 620, 1290, 219, --22, -92, 51, 276, 896, 252, 274, 259, 141, 169, 836, 326, -428, -720, 137, 374, 443, -663, -1280, -1577, -818, -496, -838, -280, 39, -354, 552, 540, 523, 519, 358, 447, 372, 419, 577, 703, 701, 351, 343, 279, 410, 397, 299, 89, 272, -795, -533, -579, -586, -262, --205, 117, 569, 70, -374, -826, -613, -222, 215, 754, 722, 487, 94, -38, 242, 478, 428, 568, 491, 407, 231, 181, 190, 402, 408, -361, 277, 435, 417, 177, 5, -217, -525, -264, -55, 114, 239, 353, 498, 458, 511, 582, 389, 172, 6, 60, 203, 458, 432, 272, -235, 378, 181, 74, 116, 167, 297, 345, 430, 586, 289, 193, -56, -128, -235, -276, -311, 816, 423, 438, 506, 544, 603, 647, 699, -715, 703, 691, 697, 746, 777, 748, 673, 574, 511, 471, 438, 492, 480, 586, 639, 644, 718, 655, 613, 576, 531, 482, 540, 526, -612, 667, 487, 569, 222, 329, 329, 346, 363, 382, 405, 427, 459, 492, 534, 560, 597, 540, 508, 479, 454, 424, 354, 538, 629, -545, 565, 681, 578, 578, 598, 600, 640, 660, 655, 620, 444, 676, 673, 308, 79, -117, 196, -29, 14, -2, 8, 5, -41, -15, --2, 44, 28, 38, 31, 98, 127, 162, 124, 84, 197, -39, -200, -607, 73, -119, -464, -499, -493, -448, -454, -486, -515, -245, 73, --743, -353, -1002, 299, 302, 337, 306, 174, 56, -109, -61, -46, 31, -108, -139, -146, 10, 108, 224, 132, 127, 199, -329, -12, 16, -26, 24, 243, 135, 129, 110, 128, 132, -38, -5, -135, -290, -129, -497, 109, 489, 193, 132, -240, -326, -531, -345, -201, 103, 40, -57, -14, 275, 392, 525, 289, 250, 202, -44, -77, 96, 187, 183, 525, 115, 209, 162, 217, 91, -45, -149, -346, -384, -89, -858, -951, 1757, 1622, 1379, 501, 90, -425, -282, -235, 68, -280, -392, -477, -87, 159, 470, 141, 175, 171, -405, -54, -175, 104, 236, 669, -386, 312, 383, 453, 198, -154, -125, -317, -286, -359, 3616, 1881, -154, -833, -2563, -2996, -2898, -2199, -711, 764, 2298, 2648, 2796, 2760, 2222, -1921, 2010, 1197, 826, 535, 5, 253, -48, 232, 261, 493, 166, 222, 507, 507, 881, 1229, 731, 921, 1444, 2757, 1196, 104, -89, 583, --196, 2077, 2199, 1608, 912, -45, -1396, -1670, -1642, -1809, -1142, -1150, -1553, -438, 284, 383, 714, 625, 429, 435, 395, 854, 567, 491, 212, -803, 795, 691, 1109, 1254, 1340, 746, 580, 398, -361, -110, -245, 427, 1142, 2076, 1200, 655, -257, -829, -1461, -2265, -1926, -1500, -800, -686, --564, -42, 56, 186, 350, 224, 505, 1708, 2, -312, 151, 430, 754, 1612, 780, 173, 953, 491, 807, -107, -756, -547, -1908, -1052, -1098, --1343, -1314, -1503, -2016, -823, -190, -147, 231, 221, -1, -38, -105, 110, 471, 226, 4, 237, 431, 1167, 423, 244, 498, 33, 216, 836, -530, 303, 355, 285, 226, -311, 65, -41, -1374, -528, -443, -774, -560, -622, -809, -757, -419, 430, 241, 151, -246, -358, -217, -94, 200, -199, 287, 336, 201, 209, 212, 184, 385, 297, 311, 388, 222, 291, 328, 227, 526, 296, -428, -816, -752, -466, -395, -560, 117, 529, -792, 523, 404, 561, 478, 390, -117, -219, -229, -26, 19, 59, 54, 120, 259, 388, 449, 482, 271, 519, 583, 576, 468, 437, 488, -532, -206, -124, 59, 169, 256, 88, -6, -202, -90, -32, 88, 235, 399, 521, 354, 211, 69, 81, -5, -69, 124, 291, 483, 451, -454, 429, 374, 204, 199, 125, 98, 62, 73, 64, 36, -13, 109, 120, 50, -92, -155, -225, -287, -356, -317, -284, -246, -222, -224, --189, -189, -156, -139, -149, -144, -137, 313, 155, 197, 231, 346, 301, 314, 328, 384, 378, 457, 440, 415, 311, 228, 244, -85, 106, -53, 35, 6, -19, -41, -80, -69, -74, -79, -78, -66, -49, -41, -40, -33, -24, 3, -45, -38, -14, 233, -50, -24, 231, 212, -178, 138, 110, 64, 50, -42, -5, 41, -95, 75, -5, 40, -190, -64, -66, -39, 19, 31, 4, 41, 37, 9, -16, -35, -68, --36, -25, -18, 2, 18, -35, 96, 142, 194, 79, 157, 247, 194, 179, 176, 175, 170, 177, 164, 38, 254, 166, 493, -350, -503, --531, -507, -259, -84, -75, 50, 75, 44, 49, 0, -113, -64, -33, -9, 48, 38, 26, 237, 115, 92, 163, 206, 238, 143, 95, -103, 50, 69, 138, 152, 191, 293, 96, 223, -496, -1075, -731, -714, -134, 77, -42, 268, 215, -9, -114, -250, -423, -233, -148, -90, -73, 80, 112, 286, 227, 111, 261, 374, 455, 301, 179, 190, 142, 192, 246, 290, 298, 428, 82, 705, -1310, -2726, -2512, -2356, -1066, --429, -481, 97, 336, 162, 187, -16, -429, -210, -80, 12, 218, 119, 203, 355, 242, 240, 269, 377, 734, 396, 232, 126, 233, 200, -277, 429, 717, 672, 414, -1174, -1360, -1058, -435, 1699, 1077, 1242, 2307, 872, 99, -502, -949, -1207, -1433, -1104, -959, -905, -380, 73, 719, -616, 359, 136, 312, 352, 564, 217, 310, 707, 846, 629, 24, -253, -238, -361, -676, 252, 378, 1757, 1736, 1305, 1196, 1213, 1018, 166, --410, -1247, -1446, -1531, -1313, -1211, -736, 97, -101, -106, 216, 396, 501, 327, 372, 402, 873, 428, 347, 209, 758, 786, 691, 987, 760, -325, 552, -451, -249, 738, -364, -1951, -1916, -1672, -716, -101, 468, 753, 1243, 1266, 965, 344, -256, -872, -497, -224, -393, -271, -186, 108, -192, 439, 1544, 270, -155, 19, 85, 370, 1287, -51, -371, -572, -393, -365, 120, 315, -80, -176, -1004, -1279, -962, -1224, -680, 367, 862, -1302, 1636, 1484, 1226, 741, 1142, 1090, 395, 83, 109, 60, 138, 288, 948, 271, 92, 562, 162, 159, 571, 163, 156, -10, -65, 23, -75, -124, -349, -931, -1081, -708, 306, 438, 391, 143, 77, 48, -43, 286, 499, 640, 538, 296, 196, -63, 104, 212, 232, 298, 313, -315, 239, 63, 116, 219, 377, 203, 111, 138, 125, 137, 319, 165, -61, -476, 175, 233, 35, -400, -388, -10, 185, 107, -293, -282, --157, 14, 205, 392, 413, 150, 184, 244, 307, 283, 213, 193, 215, 208, 319, 294, 202, 175, 178, 338, 146, -119, -370, -362, -277, --239, -83, 52, 306, 138, -111, -437, -330, -160, 52, -8, -128, -326, -335, -309, -223, -90, 13, 102, 184, 262, 291, 271, 193, 155, -164, 210, 240, 244, 189, 217, 26, 413, 364, 338, 325, 283, 262, 241, 240, 188, 226, 226, 217, 139, 88, 52, 68, 104, 155, -189, 159, -87, 127, 154, 163, 198, 303, 273, 296, 314, 297, 220, 326, 239, 314, 362, 312, 445, 375, 374, 378, 387, 393, 390, -391, 366, 329, 301, 259, 234, 193, 250, 283, 303, 306, 309, 376, 328, 280, 86, 430, 365, 218, 243, 267, 273, 307, 337, 322, -376, 406, 245, 409, 535, -133, -209, -158, -173, -183, -195, -208, -200, -176, -188, -192, -204, -179, -168, -139, -148, -141, -143, -122, -111, --134, -100, -68, -29, -55, -21, 39, 23, 5, -17, -14, -3, 23, -62, -106, -71, -183, -585, -405, -193, -115, -68, -103, -205, -199, --260, -267, -295, -215, -139, -60, -81, -91, -132, -70, -73, -138, -67, -88, -100, 49, 93, 59, 37, 11, 4, -12, -23, 30, -59, --136, -261, -354, -1071, -826, -408, -608, -566, -456, -534, -471, -635, -711, -705, -579, -459, -275, -306, -272, -250, -139, -73, -135, -94, -15, --95, 222, 308, 229, 254, 190, 140, 139, 129, 168, 56, -129, -447, -718, -2217, -1660, -508, -390, 20, 253, -196, -286, -635, -723, -815, --561, -322, -57, -151, -133, -159, 55, 19, -173, 0, -57, -91, 281, 485, 559, 403, 264, 263, 332, 259, 144, -13, -483, -806, -1391, --370, 885, 1552, 338, -2022, -2836, -3034, -1977, -2354, -2693, -3034, -2660, -2154, -1653, -925, -798, -1373, -746, -509, -174, 33, -79, 164, 191, 253, -548, 381, 349, 393, 267, 206, 165, -45, -445, -441, -836, 1753, 2186, 2539, 2006, 1214, -905, -1622, -357, -529, 176, 984, 1048, 1009, 968, -965, 883, 526, 135, -317, -198, -216, -224, -146, 114, 258, 673, 250, 159, 280, 496, 490, 733, 562, 906, 1382, 1673, 708, 625, 707, -866, 725, 592, 401, 1089, 540, 97, -837, -1081, -1020, -724, -211, -126, -447, -227, -41, -60, 141, 228, 309, 212, 357, 1112, 413, 58, -190, 71, 367, 1197, 554, 578, 150, 281, 474, 86, 293, 633, 807, -52, -234, 384, 476, 634, 507, 380, 88, -286, -250, -86, 103, -210, 208, 355, 502, 416, 570, 677, 592, 695, 115, -65, 354, 123, 252, 541, 387, 485, 299, 410, 53, 162, -3, -63, 600, 56, --44, 143, 0, 112, 366, 142, -88, -269, -127, -206, -485, 158, 162, -1, 228, 62, 23, 207, 277, 344, 406, 294, 130, 211, 324, -470, 330, 237, 150, 33, 370, 112, 373, 259, -221, -481, -369, 270, 106, 57, -60, 153, 270, 348, -104, -242, -11, 114, 98, 115, -213, 96, 158, 247, 270, 150, 120, 156, 186, 55, 47, 316, 164, 208, 251, 385, 248, 421, 224, -123, -376, -142, -1, 184, 137, -216, 256, 91, -117, -263, -203, -136, -45, -23, 65, 47, -50, 47, 40, 43, 135, 157, 212, 105, 172, 310, 468, 578, 552, 531, -495, 391, -132, -219, -93, 56, 173, 241, 288, 351, 244, 118, 24, -28, -33, -86, -10, 18, 33, 39, 31, 78, 235, 59, 8, -17, -5, -102, -134, -152, -149, -236, -290, -319, -298, -251, -242, -226, 71, 5, 83, 104, 138, 161, 192, 246, 219, 223, 211, 192, -162, 129, 106, 85, 78, 79, 83, 40, 116, 186, 396, 55, 148, 370, 347, 319, 284, 268, 252, 218, 78, -13, 299, 114, 131, --208, -109, -135, -176, -192, -252, -291, -322, -389, -263, -238, -295, -231, -209, -189, -200, -191, -168, -177, -173, -163, -140, -118, -86, -100, --82, -66, -58, -60, -63, -69, -77, -63, -99, -97, -123, -127, -133, 104, -13, -149, -424, -681, -764, -864, -486, -388, -557, -429, -389, --293, -302, -267, -190, -193, -167, -110, -128, -125, -78, -3, 30, -36, -22, -41, -17, -92, -70, 25, 62, 86, 51, -35, 96, 295, -335, 158, -212, -948, -1098, -1401, -590, -347, -678, -338, -257, -131, -213, -174, -28, -110, -103, -2, -90, -43, 78, 204, 233, 118, 188, -132, 188, 49, 87, 212, 185, 131, 180, 133, 530, 1264, 1325, 932, -282, -1713, -2118, -2392, -1046, -564, -1032, -680, -559, -257, -377, -291, --26, -152, -62, 78, -105, 0, 41, 392, 485, 465, 387, 286, 356, 212, 193, 452, 575, 557, 717, 595, 395, -380, -1231, -1294, -953, --826, -345, -335, -418, -310, -547, -140, -4, 352, 198, 329, 496, 488, 364, -114, -279, -43, 117, 296, 325, 395, 474, 441, 285, 590, -601, 174, 35, 65, -13, 265, 1614, 1017, 444, 863, 2045, -336, -1555, -1475, -1087, -1228, -2166, -1682, -1200, -730, -442, -433, -703, -297, -274, --595, -467, -345, -231, 135, 244, 411, 322, 162, 62, 249, 422, 1024, 537, 556, 1174, 1176, -722, -762, -559, -138, 547, 360, 1234, 1382, -1427, 788, -3, -599, -1264, -1645, -1944, -1737, -1100, -1082, -867, -199, -13, 83, -124, 506, 607, 454, 270, 18, 269, -72, 251, 1081, 1009, -600, -91, -529, -92, 46, -16, -244, -347, -146, 257, 787, 1586, 2224, 2364, 1858, 1319, 1042, 599, 326, 32, -213, -330, -255, -97, -19, -40, 479, 416, 250, 305, 242, 413, 286, 299, 167, 232, 308, 314, 102, 111, 107, 93, 8, -340, -589, -415, 279, 187, 392, 677, -1059, 1231, 1082, 627, 412, 242, -14, -104, -348, -243, -251, -110, -54, 56, 280, 198, 150, 169, 137, 291, 514, 383, 234, 88, 70, -26, -76, -273, -203, -24, -45, 96, 460, 823, 894, 521, 381, 333, 451, 758, 705, 413, 229, 59, -71, 40, 149, 143, 105, 217, -469, 285, 193, 152, 108, 99, 66, 57, 33, -52, -18, 330, 231, 147, 170, 99, 263, 364, 406, 248, 149, 111, 162, 200, 203, -96, 28, 13, 188, 369, 441, 312, 286, 257, 188, 46, -19, 27, 246, 220, 284, 253, 280, 213, 233, 205, 215, -41, 89, 166, -258, 322, 404, 463, 585, 592, 599, 553, 448, 335, 233, 254, 274, 258, 222, 212, 192, -104, 82, 101, 117, 100, 194, 150, 68, --32, -41, -104, -180, -134, -122, -68, -20, 198, 210, 218, 238, 265, 278, 294, 314, 288, 277, 281, 304, 329, 329, 332, 324, 330, -331, 313, 357, 273, 210, 35, 280, 209, 44, 22, 31, 51, 38, 45, 43, 162, 220, 44, 162, 276, -235, -269, -285, -251, -286, --341, -288, -278, -345, -233, -215, -247, -245, -236, -192, -203, -201, -206, -196, -193, -184, -223, -215, -165, -191, -188, -171, -165, -161, -163, --182, -176, -135, -178, -214, -119, -208, -52, -393, -401, -440, -535, -380, -353, -536, -295, -243, -310, -293, -265, -178, -215, -224, -240, -218, --192, -156, -180, -148, -119, -72, -44, -85, -58, -94, -134, -153, -135, -36, -64, -65, -17, -170, -130, -419, -651, -650, -999, -578, -470, --783, -341, -269, -398, -403, -350, -149, -160, -124, -176, -97, -88, -49, -111, -76, -9, 78, 103, 47, 132, 98, 47, -35, -20, 125, -88, 113, 161, -186, 370, -606, -1060, -1113, -1372, -633, -408, -954, -461, -326, -472, -442, -302, -106, -125, -178, -257, -135, -31, 148, 24, -112, 185, 333, 432, 466, 422, 292, 237, 121, 158, 400, 503, 608, 613, 286, -1711, -1228, -1451, -1014, -349, -1003, -1118, -1172, -400, -137, -81, 102, 95, 46, 62, 292, 572, 282, 165, 301, 110, 101, 143, 396, 340, 114, 460, 505, 297, 579, 280, -372, -148, -216, -577, --1417, 718, 1101, 958, -123, -1236, -1433, -1350, -2291, -625, 253, 588, 180, -230, -261, -822, -988, -994, -486, -114, -163, -116, 69, 119, 469, -529, 455, 204, 7, 92, 158, 374, 814, 378, 257, 425, 696, -229, 248, 290, 999, 2927, 2110, 1542, 910, 759, 698, 548, 398, 205, -13, -93, -80, -162, -432, -597, -533, -513, -343, -338, 526, 479, -320, 72, -66, -5, -217, 97, 638, 743, 841, -37, -63, 344, 209, -16, 16, 617, -120, 115, 895, 1418, 1415, 651, 746, 627, 402, -164, -350, -162, -105, -91, -184, -331, -214, -267, 435, 482, -8, 341, -316, 417, 549, 545, 156, 124, 136, 76, 321, 57, 126, 538, 595, 469, 20, 93, 382, 586, 545, 59, 237, 265, 685, 421, 364, -279, -197, -271, -44, -22, 144, 110, 69, 77, 136, 31, 11, 174, 101, 192, 287, 506, 495, 236, 138, 172, 392, 445, 212, 72, --384, -456, -291, -58, -11, -206, -196, -177, -132, -106, -122, -244, -12, 84, 60, 65, 29, 40, 65, 97, 263, 257, 179, -58, 75, -98, 87, 37, 32, 0, 198, 16, 54, -20, -113, -104, -165, -226, -352, -164, 12, 220, 23, -178, -419, -187, 37, 194, 186, 102, -235, 314, 223, 166, 131, 145, 77, 215, 229, 406, 254, 188, 92, 132, 151, 181, 130, 56, -84, -65, -70, -101, -119, -119, -147, --29, 43, 168, 308, 500, 660, 585, 481, 433, 413, 387, 353, 498, 266, 226, 217, 188, 28, 5, -4, 33, -19, 39, -8, 49, -21, -40, -59, -50, -241, -213, -226, -225, -230, -237, -258, -221, -197, -185, -161, -152, -104, -125, -112, -121, -130, -130, -190, 38, 161, -390, -99, 85, 334, 320, 287, 245, 242, 215, 217, 89, -94, 273, 76, -344, 22, -140, -14, -43, -18, -23, -6, -6, 13, -1, -14, 68, 24, 25, 60, 37, 27, -4, 38, 34, 32, -54, -112, -231, 3, -88, -210, -195, -194, -205, -216, -216, -186, -99, -21, --220, -187, -389, -75, 5, 2, -52, -32, -20, 75, 23, 41, 155, 20, 17, 115, 78, 75, 5, 116, 105, 18, -95, -10, 37, -64, 54, 38, 81, 61, -27, 13, 40, 45, 5, -67, -72, -183, -688, -558, -386, -350, -311, -58, -135, 24, -177, -87, 188, -44, --60, 127, 25, 14, -145, 120, 128, -28, -4, -10, 47, 148, 137, 23, 138, 144, 0, 9, -23, 99, 6, -85, -167, -492, -1200, --671, -273, -386, -403, -118, -51, 270, -61, -59, 279, -129, -129, 148, 92, 85, -130, 303, 290, 67, 154, 102, 182, 335, 431, 303, -443, 329, 194, 151, 128, 240, 112, -133, -205, -827, -1094, -371, -559, -550, 118, -28, -303, -818, -467, -292, 81, -330, -593, -643, -658, --597, -567, -496, -498, -284, -20, -113, -91, 211, 247, -19, 357, 421, 104, 322, 109, -203, -74, -273, -624, -1104, 1007, 664, -28, -356, --842, -581, -656, -1245, -342, -300, -689, -343, -158, -51, -67, 116, 306, -53, -65, 128, 18, 198, 238, 402, 469, 490, 172, -86, 100, --52, 171, 576, 239, 76, 20, 588, -254, 319, 1105, 1725, 2098, 1805, 925, -342, -304, -483, -651, -876, -725, -94, -68, -4, 13, -48, --152, -276, -237, -113, -257, 615, 491, -529, 58, -3, 2, -134, 58, 147, 903, 1153, 647, 20, 3, 195, 306, -50, -577, -308, 87, -206, 700, 490, -113, -381, -877, -1243, -1259, -1125, -794, -729, -542, -215, -87, 73, 87, 534, 542, 61, 312, 235, 206, 457, 559, 235, -371, 277, -18, 33, 284, 136, -6, 145, 548, 495, 99, -771, -116, 112, -34, 159, 245, 240, 285, 220, 228, 130, 91, 112, 147, -256, 158, 231, 252, 184, -3, -50, -4, 28, 75, 47, 289, 356, 196, 310, 154, 232, 414, 447, 180, 32, -144, -552, -302, -206, --47, -152, -193, -124, -278, -286, -313, -152, -53, -33, -56, -91, 4, 85, 91, 11, 87, 103, 191, 201, 234, 266, 262, 195, 111, -16, 277, 321, 266, 230, 184, -7, -208, -436, -300, -213, -82, -69, -41, -11, -15, -13, -25, -113, -229, -310, -113, -29, 102, 84, -84, 95, 93, 99, 114, 104, 104, 94, 129, 175, 209, 244, -29, 88, 1, -90, -143, -219, -259, -336, -279, -256, -226, -194, -162, --137, -107, -76, -29, -11, 29, 38, 45, -8, -65, -120, -130, -142, -77, -50, -6, 65, 121, 202, 153, 123, 106, 117, -203, -54, --107, -115, -142, -157, -175, -208, -188, -178, -164, -147, -129, -105, -108, -113, -120, -116, -106, -86, -246, -303, -329, -208, -317, -390, -352, --322, -294, -276, -260, -231, -231, -132, -313, -267, -173, -7, 26, 7, 48, 67, 45, 15, -10, -10, -53, -50, 8, -9, -8, -35, --23, -25, -34, -25, -22, -58, 29, 72, 106, 59, 87, 77, 102, 98, 71, 86, 89, 112, 62, 12, 61, 24, -45, 128, 161, -152, 53, -22, -75, -62, -187, -147, 60, 40, 13, -87, -73, -76, -93, -46, -45, -86, 45, 28, 98, 116, 112, 17, 63, 63, -41, 22, 30, 110, 52, 41, 35, -31, -102, 181, 483, 463, 337, 186, 38, 78, -259, -235, 124, 46, 84, -68, -63, -100, -143, --105, -121, -183, -51, 10, 162, 181, 179, -13, 146, 81, 56, 24, 62, 215, 25, -44, -21, -91, 87, 717, 913, 809, 447, 59, --36, 69, -424, -362, 368, 255, 168, -93, -145, -149, -219, -116, -139, -287, -30, 24, 195, 342, 315, 41, 339, 325, 149, 106, 119, -395, 166, 53, 211, 36, -218, -594, -1046, -728, -313, 339, 71, -899, -724, -718, -542, -377, -112, 128, -13, -193, -390, -265, -253, -460, --401, -272, -129, 62, 210, 185, 302, 316, 138, 351, 213, -65, -83, -48, -238, -172, -66, -104, -693, -998, -1628, -1271, -1076, -1284, -1611, --1541, -392, -511, -533, -545, -760, -531, 170, -2, -79, 21, -53, -18, 61, 275, 314, 186, 187, 32, 63, -59, 210, 555, 334, 45, --379, -193, 751, 1275, 1423, 1473, 1078, 1323, 594, -1092, -654, -628, -525, -411, -321, -219, -203, -183, -114, -279, -286, -185, -189, -1, 100, -640, 533, -255, 143, 70, 129, 31, 111, -190, 758, 1174, 1008, 852, 199, 71, 85, 275, 563, 972, 941, 189, 578, 352, -52, -902, --1333, -1327, -1100, -881, -670, -583, -477, -276, -71, 132, 101, 417, 352, -140, 273, 252, -7, 278, 457, 420, 469, 325, 100, 172, 160, -339, 356, 424, 481, 326, 55, -467, 10, 444, 1210, 1100, 971, 582, 320, 95, 214, 288, 368, 334, 255, 234, 166, 375, 408, 285, -139, 70, 7, 116, 131, 105, 309, 394, 311, 211, 139, 117, 225, 379, 468, 423, 306, 7, 129, 139, 279, 41, -185, -468, -374, --188, 112, -75, -113, -102, -118, -5, 33, 174, 220, 201, 199, 206, 290, 284, 342, 388, 352, 286, 186, 224, 245, 315, 276, 217, -171, 161, 186, 223, 281, 352, 456, 492, 547, 581, 442, 259, 110, 169, 326, 288, 119, 222, 243, 241, 196, 247, 177, 248, 142, -171, 98, 109, 111, 123, 104, 156, 69, 2, -24, -7, -8, -8, -15, -24, -24, -29, -35, -18, 2, 56, 72, 124, 140, 139, -106, 136, 59, 124, 135, 127, 108, 154, 160, 158, 122, 168, 179, 152, 125, 87, 101, 78, 76, 65, 77, 72, 69, 66, 62, -55, 69, 83, 97, 106, 109, 109, 103, 97, 100, 104, 102, 124, 121, 76, -63, 126, 78, -77, -69, -55, -29, -37, -28, -16, -76, 113, -8, 61, 121, -69, -66, -64, -72, -89, -73, -78, -87, -130, -117, -101, -66, -49, -54, -93, -82, -75, -46, -63, -64, --39, -57, -49, -3, -41, -45, -43, -32, -35, -46, -46, -39, -3, -58, -81, -40, -60, -13, -128, -150, -101, -22, -15, -68, -206, --225, -199, -106, -27, -18, -121, -106, -108, -40, -115, -92, -50, -67, 13, 38, 31, 14, -28, -20, -29, -45, -49, -30, 47, -29, --67, -90, -116, 59, -16, -242, -169, -58, -123, -168, -403, -407, -308, -109, 39, 23, -202, -144, -133, 29, -106, -67, -45, -47, 70, -177, 124, 92, 56, 65, 24, 1, -19, 8, 190, 11, -44, -46, -60, 105, -191, -378, -57, 260, 130, -83, -494, -577, -444, -149, -153, 137, -189, -131, -141, 39, -245, -155, -85, -164, 95, 230, 286, 185, 32, 226, 269, 105, 71, 91, 365, 138, 79, -7, -101, --606, -887, -931, -1020, -1427, -636, -264, -289, -477, -514, -258, -178, 32, -35, -242, -203, 254, 145, 89, -115, -137, 56, 151, 119, 226, -400, 304, 245, 180, 255, 7, -93, -282, -332, -320, -362, -287, -399, -1190, -1145, -563, -126, -56, -158, -701, -701, -33, -420, -533, -538, --313, -283, -452, -291, -164, -132, -127, -66, 132, 380, 316, -84, 29, 7, 65, -31, 116, 41, 327, 192, -317, -306, 1048, 1262, 1594, -1485, 777, 767, 209, -683, -700, -667, 64, -266, -357, -505, -725, -657, -287, -254, -229, -160, -216, -45, 159, 472, 439, -22, 174, 71, -63, 125, 236, -74, 602, 901, 1197, 1103, -78, -157, -155, 168, 425, 1308, 1304, 520, 303, -97, 28, -555, -747, -791, -908, -927, -766, --582, -403, -288, -130, -5, 87, 129, 88, -183, 82, 156, 53, 152, 310, 510, 525, 385, 142, 20, 259, 170, 84, 59, 207, 128, -71, 109, 237, 466, 977, 606, 440, 248, 335, 361, 275, 218, 181, 184, 107, 95, 235, 457, 478, 234, 246, 232, 222, 237, 172, -180, 307, 384, 363, 313, 124, 96, 14, 107, 462, 209, 56, 53, -427, -423, 26, 79, 117, -10, -187, -194, 195, 245, 255, 156, -95, 196, 205, 115, 119, 239, 292, 301, 234, 397, 447, 287, 343, 264, 157, 93, 208, 188, 190, 229, 236, 139, 50, -48, -35, --67, -164, -10, 137, 268, 379, 458, 509, 442, 414, 438, 406, 299, 248, 277, 280, 270, 244, 247, 241, 183, 146, 134, 102, 86, -61, 146, 41, 123, 96, 40, 4, -17, -40, -86, -110, -134, -165, -201, -256, -294, -295, -293, -282, -219, -184, -144, 35, 69, 128, -166, 235, 294, 304, 306, 311, 331, 364, 348, 319, 248, 187, 175, 102, 168, 131, 125, 114, 97, 85, 82, 65, 51, 47, 29, -17, -4, 22, 43, 59, 61, 72, 60, 78, 88, 117, 139, 146, 143, 132, 130, 126, 121, 108, 118, 140, 169, 81, 97, 170, --5, -52, -53, -47, -28, 19, 15, 15, 25, -28, -38, -9, -14, -9, -6, -15, -12, 8, 0, 4, 39, 15, 3, -22, 17, --2, -35, -48, -52, -55, -55, -47, -17, -21, -15, -80, -56, -179, -168, -119, -82, -9, -13, -10, -3, -155, -170, -72, -64, -42, --15, -26, -9, 63, 31, 53, 101, 39, 91, 95, 66, 45, 70, 16, -1, -13, -3, 18, 62, 13, -49, -133, -157, -296, -340, --323, -247, 5, 72, 115, 166, -168, -255, -120, -147, -96, -70, -90, -60, 62, 32, 83, 153, 146, 190, 213, 156, 118, 197, 60, -16, 1, -7, 33, 167, 37, -66, -213, -248, -724, -567, -409, -373, -128, 10, 79, 111, -443, -531, -283, -264, -217, -92, -91, -27, -183, 126, 210, 320, 197, 273, 321, 241, 177, 206, 197, 210, 63, 71, 81, 279, 59, -158, -453, -672, -116, -320, -568, -548, -426, --277, -180, -62, -28, -189, -678, -331, -390, -503, -456, -334, 2, -85, -79, -82, 71, 223, 333, 205, 222, 415, 267, 163, 104, 91, --8, 81, -207, -304, -180, -71, -803, -740, -775, -662, -356, 229, 236, 175, -730, -954, -602, -148, 115, -119, 74, -14, -64, -95, -46, --28, 25, 106, 226, 435, 373, -84, -50, -62, 62, -129, -73, -172, 307, 282, -163, -548, 1379, 1894, 1361, 853, 265, -825, -1035, -309, --1059, -896, -189, -77, -69, -533, -529, -549, -361, -64, 16, -174, -135, 16, 374, 198, 120, -59, 47, 23, -19, 50, 131, -60, 356, -683, 1155, 1233, -5, 8, -160, 233, 921, 1301, 1132, 687, -538, -1026, -704, -694, -422, -476, -320, -383, -470, -461, -292, -146, -111, 73, -389, 176, 162, 128, 24, 54, 128, 30, 149, 477, 558, 539, 354, 232, 292, 285, 197, -5, -243, 22, 147, 535, 242, 309, 653, -437, 241, -19, -130, -91, 60, 79, 78, 144, 115, 178, 257, 386, 383, 186, 252, 301, 487, 289, 211, 181, 244, 310, 349, 358, -11, -100, -64, -21, -42, 189, 219, 91, -194, -231, -95, 231, 523, 680, 726, 569, 240, 230, 233, 255, 314, 326, 345, 191, 99, -83, 194, 246, 300, 326, 334, 294, 373, 349, 282, 121, 55, -15, 113, 223, 326, 245, 205, 223, 165, 78, -62, -2, 53, 170, -151, 179, 214, 253, 237, 252, 211, 119, 35, 175, 295, 408, 295, 192, 125, 129, 154, 164, 144, 107, 103, 85, 300, 342, 297, -245, 220, 191, 164, 121, 78, 60, 39, 32, -1, -43, -36, -28, -21, -28, -14, -18, -34, 82, 121, 168, 188, 245, 258, 302, -328, 342, 348, 389, 358, 360, 337, 333, 240, 261, 235, 227, 207, 200, 192, 185, 193, 192, 190, 170, 158, 139, 147, 144, 140, -141, 138, 139, 138, 148, 152, 196, 204, 225, 228, 228, 229, 235, 237, 238, 232, 242, 207, 235, 224, 16, -10, -3, -42, -44, --44, -11, 5, 34, -25, -29, 20, -6, -2, 4, 17, 25, 32, 25, 29, 41, 52, 51, 40, 48, 42, 41, 11, 1, -6, -5, 12, 34, 29, 22, -34, -13, -138, -53, -139, -126, -55, 64, 96, 135, -28, -60, 61, -17, -23, -26, 1, 21, 44, 51, -67, 109, 133, 130, 124, 107, 91, 112, 28, 2, 0, 14, 45, 90, 71, 23, -98, -64, -178, -107, -260, -323, -292, -88, -15, -139, -153, -203, 75, -109, -72, -4, 33, 64, 81, 60, 83, 160, 224, 231, 216, 196, 174, 226, 58, -20, -16, 5, 75, 176, -104, 18, -190, -98, -292, -91, -345, -393, -166, 130, 244, 390, -114, -217, 223, -56, -78, -4, -2, 36, 79, 136, 151, 242, 387, -349, 349, 279, 240, 330, 185, 144, 17, 43, 96, 311, 177, 11, -299, -227, 221, -340, -595, -748, -782, -437, -241, -56, 209, 61, --652, -559, -488, -407, 18, 22, -310, -291, -239, -93, 7, 120, 258, 148, 174, 374, 183, 71, 70, 100, 60, 77, -97, -129, -147, -254, -749, -796, -714, -357, -264, -3, 105, 243, -543, -716, -1024, -228, 31, 33, -11, -64, 127, 98, 59, 45, 138, 173, 250, 352, -357, 40, -15, 17, 55, -28, 5, -169, 256, 230, 43, -524, 1476, 1247, 843, 213, -580, -1230, -1294, -126, -1100, -1158, -1107, -496, -301, --575, -192, -146, -241, -167, -62, -122, -18, 180, 656, -25, -169, -32, -79, 15, -4, -30, 18, -49, 185, 451, 1308, 1233, 225, 341, -481, 773, 1286, 1008, 635, 559, -908, -1127, -756, -200, 37, -238, -234, -319, -233, -314, -290, -117, -63, 68, 564, 161, 101, 206, 47, -36, 48, -69, 15, 360, 547, 597, 554, 347, 319, 382, 285, 164, -35, 205, 585, 1114, 717, 507, 149, 76, -85, -367, -501, -554, --371, -268, -178, -51, 90, 124, 270, 244, 241, 181, 218, 276, 479, 387, 345, 234, 231, 283, 375, 338, -18, -53, -139, -112, -27, -202, 231, 145, 245, 226, 31, 400, 652, 862, 863, 765, 475, 299, 208, 228, 272, 273, 267, 309, 262, 135, 128, 179, 307, 189, -213, 316, 349, 327, 284, 123, 147, 145, 186, 193, 199, 210, 274, 337, 282, 232, 170, 83, -28, -91, -88, -44, 7, -1, -71, --60, 43, -25, -55, 58, 201, 328, 279, 192, 133, 178, 212, 250, 201, 182, 171, 169, 288, 248, 227, 213, 206, 194, 164, 150, -134, 137, 153, 156, 179, 188, 184, 160, 140, 121, 115, 99, 120, 147, 188, 201, 192, 210, 207, 231, 236, 238, 216, 240, 238, -262, 267, 250, 207, 197, 195, 187, 178, 173, 172, 165, 175, 174, 168, 170, 167, 165, 158, 157, 154, 156, 158, 153, 145, 157, -167, 166, 178, 198, 199, 201, 205, 205, 211, 206, 179, 168, 225, 206, 190, -5, -14, 12, -44, -51, -16, -24, -11, 29, -4, --10, -3, -26, -32, -36, -10, -2, -2, -4, 3, 17, 28, 36, 45, 27, 26, 43, 11, 1, -5, 10, 23, 41, 16, 1, --21, -8, -56, -2, -131, -142, -26, -43, -14, 59, -19, -47, -21, -46, -54, -71, -20, -7, -14, -14, 8, 57, 104, 113, 96, -96, 80, 73, 4, -24, -24, 2, 32, 75, 61, 24, -106, -62, -27, 47, -261, -299, -45, -114, -51, 172, 29, -23, 15, -112, --137, -142, -12, 20, 25, -4, 41, 130, 188, 214, 187, 186, 168, 158, 22, -44, -43, 6, 76, 151, 109, 40, -135, -1, -62, -16, -440, -401, 61, -88, -6, 245, -2, -140, 0, -45, -104, -154, -31, 20, 23, 3, 74, 204, 298, 377, 338, 297, 240, 331, -142, 80, -10, 29, 125, 274, 226, 150, -235, -129, 168, -786, -568, -747, -997, -619, -358, -336, 400, 472, -188, -457, -437, -60, 157, -142, -126, -42, 29, 39, 5, 81, 168, 137, 184, 327, 93, 6, 108, 8, -92, 47, -92, -132, -216, 297, -734, -760, -208, 247, -543, 131, 49, 372, -61, -463, -737, -616, -509, -233, -319, -217, -29, -21, -45, -43, 138, 201, 387, 210, 175, 92, 2, 31, 37, -1, 25, -115, 123, 91, 68, -491, 1073, 397, -238, -1079, -2030, -1643, -1268, -719, -576, -451, -697, -474, -326, -95, 54, 4, -112, -159, --112, -39, 26, 222, 673, -20, -166, 98, -76, 70, 51, -4, -6, -39, -34, 140, 867, 970, 536, 735, 1290, 1480, 1331, 860, 280, --158, -658, -632, -563, 102, 186, -38, -226, -277, -209, -241, -275, -223, -229, -91, 418, 46, 21, 144, 6, 14, 2, -20, 50, 320, -468, 590, 744, 521, 240, 170, 130, 116, 78, 496, 924, 1252, 917, 412, -381, -426, -415, -228, -256, -327, -484, -372, -244, -142, -12, -123, 302, 185, 137, 109, 268, 333, 353, 383, 390, 410, 310, 283, 363, 257, 176, 168, 161, 138, 222, 153, 157, 433, 482, 564, -635, 559, 511, 656, 567, 580, 577, 447, 330, 248, 208, 195, 155, 271, 314, 263, 172, 154, 138, 107, 129, 202, 280, 328, 359, -293, 106, 29, -2, -22, -26, 46, 105, 128, 118, 80, 28, -33, -75, -133, -157, -187, -208, -189, -131, -150, -101, 15, 118, 111, -126, 152, 189, 191, 221, 228, 230, 233, 191, 154, 134, 112, 219, 223, 220, 223, 195, 176, 146, 124, 132, 156, 186, 197, 197, -189, 193, 189, 179, 166, 150, 129, 137, 159, 179, 188, 213, 231, 213, 203, 195, 177, 160, 152, 161, 178, 203, 203, 204, 238, -222, 211, 212, 206, 204, 201, 198, 186, 175, 171, 175, 182, 178, 178, 182, 182, 183, 190, 178, 164, 143, 200, 185, 183, 177, -174, 167, 166, 165, 156, 178, 204, 160, 187, 284, -5, 1, 7, -32, -39, -11, -45, -38, 4, -8, -9, -12, -20, -26, -31, --20, -16, -17, -9, 1, 19, 28, 33, 30, 30, 24, 17, -4, -11, -16, 1, 11, 22, 22, 22, -24, -1, -41, -19, -79, --83, -26, -114, -94, -6, -9, -12, -45, -60, -69, -71, -30, -19, -28, -21, 6, 65, 88, 103, 98, 89, 65, 44, -2, -22, --20, 7, 36, 63, 77, 37, -92, -47, -82, -17, -188, -212, -79, -299, -237, -30, -37, -28, -84, -112, -151, -192, -108, -81, -64, --39, 19, 151, 182, 205, 196, 180, 154, 111, -4, -51, -46, 2, 80, 123, 141, 82, -109, -58, -309, -138, -219, -242, -90, -364, --320, -75, -64, -77, -190, -168, -221, -282, -118, -80, -78, -85, 4, 249, 315, 388, 376, 269, 204, 288, 115, 38, -17, 33, 133, -225, 202, 77, -379, -361, 212, -744, -470, -581, -865, -606, -350, -265, 345, 396, -81, -238, -439, -474, -319, -162, -22, 63, 145, 205, -157, 148, 173, 237, 261, 251, 51, -21, 96, -141, -127, 200, 12, -32, -82, 447, -550, -570, -75, 164, 277, -62, -330, -410, -110, --49, -366, -512, -460, -127, 53, 113, 26, -37, -48, -79, 52, 203, 450, 101, 3, 30, -16, -10, -39, -103, -115, -165, -167, -63, -223, -341, 465, -508, -1273, -1591, -1946, -1208, -596, -545, -34, -98, -639, -504, -284, 275, 123, 103, 41, 106, 127, 80, 160, 237, 490, -12, -125, 86, -59, 72, 13, 20, 27, 56, -63, -71, 316, 450, 819, 1142, 1838, 1840, 1148, 546, -72, -709, -281, -259, -569, -500, --372, 93, -6, -14, -212, -213, -222, -187, -137, 9, 311, 80, 80, 175, -34, -19, -1, 72, 136, 261, 404, 597, 816, 701, 151, -62, -31, 105, 481, 887, 1100, 994, 693, 171, -396, -756, -869, -542, -435, -250, -317, -113, -30, -47, 29, 155, 320, 147, 78, 50, -302, 378, 272, 337, 392, 507, 359, 292, 361, 219, 410, 387, 427, 347, 143, 74, 216, 526, 608, 740, 820, 600, 426, 289, 301, -271, 259, 272, 263, 236, 207, 163, 178, 217, 289, 310, 237, 132, -10, 37, 71, 180, 213, 302, 405, 444, 76, 3, -28, -66, --61, 22, 58, 82, 77, 71, 84, 62, 70, 55, 89, 97, 116, 133, 183, 181, 150, 243, 288, 210, 134, 73, 128, 179, 249, -266, 284, 291, 273, 250, 241, 164, 204, 217, 234, 251, 248, 237, 234, 241, 231, 221, 208, 201, 185, 168, 155, 148, 143, 137, -136, 131, 106, 109, 113, 136, 163, 175, 168, 152, 149, 131, 136, 132, 152, 162, 174, 181, 244, 207, 210, 211, 216, 222, 227, -233, 218, 208, 199, 189, 183, 180, 185, 186, 188, 189, 187, 190, 213, 225, 231, 218, 235, 263, 258, 256, 250, 251, 245, 238, -241, 224, 246, 249, 258, -13, -16, -17, -47, -51, -32, -35, -29, -21, -12, -8, -14, -7, -12, -28, -19, -20, -26, -20, -12, --2, 3, 12, 28, 17, 11, 1, -14, -19, -23, -6, 4, 10, 15, 13, -26, -12, -25, -16, -82, -95, -48, -64, -64, -54, --38, -40, -56, -27, -28, -66, -41, -38, -44, -28, -9, 32, 63, 68, 81, 82, 59, 19, -17, -38, -35, 3, 36, 51, 88, -62, -61, 2, -28, -9, -177, -224, -146, -126, -100, -98, -16, -9, -56, 6, -27, -100, -66, -64, -85, -49, -15, 90, 128, 158, -177, 191, 158, 77, -30, -78, -66, 15, 97, 109, 172, 130, -90, 12, 19, 160, -88, -204, -97, -90, -131, -156, -93, -113, -200, --77, -68, -162, -91, -93, -99, -43, 25, 198, 284, 320, 334, 267, 232, 256, 86, -11, -37, 29, 156, 237, 262, 182, -184, 17, --7, -642, -663, -724, -704, -664, -457, -109, 97, 241, 180, 50, -77, -410, -253, -152, -55, -97, -65, 74, 204, 197, 178, 325, 313, -179, 36, -44, 8, -136, -71, 190, 148, 118, -9, 249, -450, -541, 72, 201, 142, 16, -52, -214, 126, 66, -344, -379, -409, -401, -44, 211, 103, 102, 110, 72, 96, 192, 400, 36, -66, -12, -15, 4, -108, -119, -167, -308, -306, -97, 268, -222, -307, -1097, -1689, --1765, -1200, -834, -393, -348, -40, -139, -387, -271, -194, -34, 49, 109, 29, 100, 94, 73, 240, 253, 321, 14, -83, 0, -98, -16, --68, 11, 27, 74, -111, -242, -190, -123, 1235, 1573, 1680, 1321, 664, -299, -687, -615, -93, -126, -610, -883, -797, -245, 54, 209, -26, -41, 19, -69, 89, 194, 238, 111, 81, 106, 1, 7, -2, 91, 150, 146, 417, 691, 904, 1032, 203, 140, 126, 379, 870, 1017, -997, 691, 243, -172, -391, -860, -990, -766, -701, -496, -266, -158, -104, -45, 61, 119, 276, 78, 38, 81, 227, 283, 213, 286, 340, -398, 342, 328, 408, 311, 410, 337, 312, 237, 108, 143, 253, 465, 699, 758, 692, 607, 425, 84, 135, 32, -151, -66, -5, 81, -139, 118, 235, 227, 252, 213, 166, 91, 58, 69, 103, 208, 197, 253, 345, 391, 168, 157, 124, 72, 30, 57, 45, 4, 66, -155, 266, 230, 227, 216, 280, 332, 396, 367, 304, 248, 276, 298, 306, 245, 176, 150, 173, 234, 236, 285, 297, 317, 309, 307, -309, 237, 174, 149, 163, 175, 183, 183, 198, 218, 210, 178, 155, 124, 103, 72, 86, 99, 126, 140, 193, 226, 141, 139, 120, -134, 126, 111, 107, 100, 94, 100, 96, 117, 121, 135, 137, 137, 143, 99, 113, 117, 125, 131, 133, 137, 122, 116, 108, 109, -107, 96, 118, 130, 140, 159, 166, 193, 169, 179, 198, 140, 151, 184, 189, 192, 200, 200, 205, 206, 165, 129, 204, 162, 128, -17, 5, 27, 3, 1, 3, -5, -4, 7, 0, 6, 19, 30, 27, 1, 10, 8, 1, 9, 12, 13, 11, 14, 15, 38, -22, -9, -22, -26, -28, -6, 4, 3, 26, 30, -33, -2, 21, 55, -4, -27, 2, -27, -32, -8, -34, -17, 16, 56, 55, --20, -1, -12, -30, -8, 3, 10, 36, 62, 88, 105, 80, 21, -7, -25, -30, 33, 67, 54, 103, 82, -29, 46, 50, 56, --21, -30, 8, -101, -101, -38, -88, -37, 42, 121, 110, -54, -4, -16, -61, -16, -1, 27, 79, 112, 162, 208, 174, 37, -38, --76, -82, 47, 116, 88, 178, 146, -90, 64, 251, 199, 15, 1, 102, -86, -114, -58, -149, -94, 10, 156, 174, -73, -23, -54, --123, -41, -4, 58, 187, 234, 277, 331, 296, 192, 41, -65, -73, 53, 212, 225, 309, 249, -87, 173, -421, -603, -410, -423, -336, --392, -335, -93, -77, 101, 384, 216, 90, -61, 40, 62, 15, -28, 4, 68, 138, 172, 112, 323, 314, 145, 17, -74, -43, -153, --112, 36, 167, 178, 12, -147, -190, -170, 40, -22, 31, 56, 63, -71, 123, 112, 130, -244, -338, -395, -319, -217, -140, -48, 9, -82, 191, 229, 309, 12, -67, 7, 26, 31, -131, -114, -144, -208, -179, -120, 1, -71, -710, -1216, -1515, -1348, -482, -530, -483, -377, --173, -86, -15, -338, -441, -399, -148, 10, -13, -53, -41, 27, 173, 150, 56, -46, -45, -38, -86, -36, -58, 20, -19, -30, -151, --239, -314, -428, 1428, 1460, 1088, 546, 186, -831, -977, -359, -387, -356, -309, -493, -524, -443, -273, -125, -8, 105, 118, -30, 216, 238, -114, 64, 12, -13, 21, 35, -23, 46, 114, 73, 390, 651, 955, 1156, 378, 445, 693, 904, 1209, 969, 609, 124, -338, -624, -806, --612, -533, -640, -449, -425, -351, -417, -393, -219, 28, 64, 119, 7, 29, 179, 140, 154, 166, 257, 318, 342, 352, 378, 426, 435, -308, 260, 184, 135, 152, 252, 421, 590, 713, 693, 525, 400, 214, -30, -138, -197, -268, -186, -109, -20, 63, 152, 314, 288, 242, -146, 105, 111, 179, 180, 183, 175, 191, 218, 236, 302, 283, 299, 248, 196, 133, 152, 128, 90, 160, 259, 391, 396, 408, 410, -396, 383, 358, 334, 294, 243, 246, 254, 253, 246, 239, 251, 269, 310, 304, 300, 293, 288, 301, 322, 344, 309, 93, 78, 93, -110, 124, 138, 165, 193, 220, 218, 215, 204, 206, 204, 236, 266, 305, 334, 380, 418, 293, 292, 255, 229, 175, 140, 125, 110, -95, 93, 78, 75, 76, 80, 81, 79, 85, 66, 79, 84, 91, 93, 91, 88, 85, 88, 93, 106, 115, 116, 134, 147, 158, -173, 180, 216, 180, 167, 140, 134, 124, 103, 109, 111, 116, 115, 119, 118, 98, 81, 113, 93, 74, 47, 44, 44, 42, 39, -39, 20, 18, 36, 15, 21, 35, 62, 63, 35, 37, 31, 23, 34, 37, 34, 39, 44, 44, 64, 47, 10, 6, 2, -2, -26, 35, 25, 53, 57, -3, 35, 82, 63, 52, 53, 75, 55, 50, 82, 3, 2, 28, 96, 103, 23, 33, 18, -4, 15, -19, 11, 35, 74, 113, 120, 97, 26, 15, 4, -6, 65, 90, 63, 108, 82, -16, 70, 71, 19, 30, 39, 24, -35, -40, -25, -123, -78, -15, 159, 166, -24, 6, -26, -62, -9, 10, -2, 63, 112, 191, 206, 164, 2, -24, -47, -81, 73, 131, 64, -171, 152, -93, 59, 179, 47, 15, 56, 143, 150, 150, 183, -78, -116, -80, 185, 231, -82, -5, -39, -117, -63, -52, -57, 64, -177, 262, 349, 300, 108, 12, -85, -106, 89, 243, 164, 288, 170, -191, 82, -614, -480, -93, -64, -317, -545, -599, -405, -411, -87, -445, 241, 118, -11, -137, -143, -64, -10, 91, 219, 160, 192, 188, 300, 267, 113, 15, -70, -67, -181, -128, 6, 122, 174, 155, --311, 153, 20, -252, -290, 47, 256, 318, 202, 176, 72, 98, -202, -265, -185, -219, -205, -219, -165, -87, 23, 168, 190, 110, -17, --46, -12, 43, 27, -135, -118, -130, -100, -223, -296, -202, 66, -935, -1183, -709, -358, -106, -279, -521, -580, -415, -195, 55, -218, -367, --435, -398, -307, -195, -170, -84, 12, 199, 127, -149, -60, 16, -24, -9, 11, -30, 49, -20, -84, -62, -165, -347, -635, 1216, 826, -400, -144, -638, -804, -662, -324, -439, -501, -415, -276, -261, -440, -288, -217, -67, -54, -16, -101, 225, 212, -80, -9, -26, -65, -7, -20, -36, 11, 76, 23, 258, 475, 854, 1032, 638, 818, 1135, 1194, 1136, 740, 163, -529, -643, -632, -621, -216, -188, -512, -360, -411, --521, -484, -379, -284, -62, 18, 21, 38, 82, 220, 86, 48, 81, 216, 310, 363, 396, 437, 452, 579, 242, 251, 252, 295, 373, -552, 688, 694, 603, 415, 153, 0, -149, -291, -422, -370, -148, -129, -97, -46, 83, 178, 236, 227, 193, 161, 171, 210, 241, 285, -268, 211, 216, 218, 197, 253, 310, 309, 288, 273, 225, 248, 259, 300, 347, 434, 543, 545, 543, 552, 506, 446, 384, 350, 355, -334, 267, 251, 231, 232, 251, 233, 270, 258, 286, 231, 223, 187, 239, 289, 338, 314, 90, 134, 132, 127, 130, 138, 146, 147, -181, 194, 208, 226, 253, 279, 300, 325, 339, 370, 375, 402, 411, 362, 325, 279, 240, 198, 178, 158, 151, 138, 139, 114, 122, -105, 107, 124, 78, 116, 110, 116, 118, 113, 109, 100, 111, 123, 135, 153, 167, 184, 177, 174, 174, 168, 164, 161, 158, 143, -134, 130, 114, 89, 89, 86, 76, 73, 65, 63, 76, 96, 52, 66, 106, 45, 40, 18, 33, 39, 53, 39, 33, 42, 17, -13, 4, 48, 58, 50, 39, 33, 28, 35, 37, 35, 47, 57, 75, 60, 51, 30, 32, 30, 26, 49, 57, 43, 59, 56, -16, 44, 92, 31, 48, 57, 78, 59, 49, 78, -4, -22, -37, 65, 96, 70, 32, 10, 8, 20, 29, 25, 49, 84, 128, -106, 83, 25, 16, 11, 12, 66, 83, 57, 93, 76, -6, 76, 40, -44, 11, 32, 93, 63, 25, 59, -99, -111, -151, 79, -138, 86, 23, -20, -33, 2, 23, 7, 66, 131, 220, 179, 122, -1, -21, -29, -49, 82, 118, 43, 150, 140, -98, 56, 228, -57, 82, 82, 135, 171, 122, 195, -71, -165, -243, 58, 184, 116, 5, -66, -86, -44, -19, -26, 60, 180, 286, 300, 252, 66, --8, -91, -107, 111, 237, 137, 256, 122, -175, 174, -694, -329, -96, 2, -179, -326, -400, -300, -532, -345, 189, 119, 123, 55, -170, --196, -25, 19, 84, 200, 168, 214, 331, 265, 188, 59, 35, -37, -93, -166, -114, 20, 103, 192, 316, -417, 210, -79, -232, -204, --24, 116, 135, -16, 35, 83, 199, 40, -58, -235, -142, -119, -204, -153, -68, 19, 175, 145, -55, -47, -35, -43, 11, 3, -125, --92, -141, -192, -384, -443, -347, 88, -767, -633, 103, 245, -66, -189, -418, -623, -453, -398, -399, -216, -149, -317, -334, -351, -295, -211, --107, -48, 199, 155, -209, -22, 86, -3, 25, 16, -20, 37, -33, -40, 18, -137, -418, -596, 789, 177, -416, -793, -1188, -525, -308, --562, -246, -198, -240, -228, -278, -411, -250, -191, -120, -196, -128, -82, 199, 196, -150, -64, -79, -118, -40, -17, -66, -22, 17, -64, -75, 255, 630, 774, 863, 1123, 1224, 1090, 693, 224, -340, -874, -651, -458, -218, -72, -22, -88, -270, -373, -386, -341, -234, -218, -115, --60, -52, 57, 103, 182, 62, -2, 15, 161, 273, 379, 477, 529, 529, 719, 287, 324, 459, 596, 774, 947, 945, 726, 408, 47, --249, -504, -603, -568, -486, -384, -202, -175, -119, -60, 72, 132, 109, 77, 71, 116, 214, 279, 280, 316, 318, 298, 287, 288, 267, -324, 308, 334, 366, 366, 353, 383, 422, 503, 528, 591, 666, 619, 560, 494, 448, 393, 349, 349, 350, 363, 325, 258, 216, 207, -211, 166, 187, 166, 175, 151, 142, 127, 188, 245, 297, 293, 157, 214, 220, 233, 254, 273, 285, 291, 277, 257, 245, 246, 265, -290, 281, 274, 252, 239, 204, 193, 273, 254, 253, 228, 236, 238, 233, 225, 224, 221, 233, 205, 207, 182, 191, 211, 181, 237, -232, 240, 241, 241, 242, 245, 252, 263, 270, 280, 284, 292, 270, 255, 245, 229, 221, 193, 179, 160, 137, 199, 166, 123, 123, -122, 117, 114, 108, 108, 157, 205, 98, 149, 263, 39, 26, 3, 28, 36, 51, 40, 35, 35, 17, 10, -12, 29, 41, 59, -33, 29, 32, 36, 39, 41, 52, 59, 78, 53, 44, 31, 30, 31, 35, 47, 51, 37, 51, 48, 19, 33, 67, -9, 13, -33, 72, 67, 62, 61, -6, -45, -91, -4, 48, 102, 32, 12, 25, 35, 49, 52, 70, 97, 133, 92, 67, 29, 13, 12, -30, 61, 69, 45, 70, 65, 22, 68, 11, -65, 3, 53, 132, 85, 73, 42, -68, -119, -210, -3, 73, 169, 31, -3, 14, -35, 63, 51, 99, 160, 231, 159, 91, 14, -21, -14, 2, 80, 95, 27, 117, 118, -53, 26, 239, -21, 3, 88, 187, 189, -163, 153, -42, -213, -385, -134, 82, 271, 40, -39, -19, 21, 63, 49, 113, 198, 313, 266, 214, 64, -31, -100, -80, 123, 208, -97, 208, 111, -73, 199, -728, -200, -67, -3, -137, -160, -230, -207, -584, -452, 235, 195, 166, 121, 7, -10, 54, 95, 98, 96, -133, 208, 389, 221, 118, 13, 48, -8, -107, -138, -89, 14, 88, 178, 341, -521, 247, -49, -76, -174, -381, -63, 5, -230, -32, -3, -98, -1, 29, -185, -126, -132, -130, -96, -6, 51, 180, 128, -116, -42, -1, -19, 4, -24, -104, -80, -159, -217, -353, -390, --355, 149, -396, -104, 292, 381, 120, 20, -165, -513, -399, -393, -370, -100, -62, -254, -246, -261, -229, -199, -119, -77, 113, 113, -176, --21, 89, 3, 1, -4, 10, 2, -75, -43, 7, -128, -305, -400, 213, -402, -1256, -1392, -1184, -505, -236, -474, -218, -143, -139, -143, --150, -191, -139, -143, -145, -179, -93, 27, 122, 108, -120, -93, -98, -123, -21, -35, -117, -80, -80, -214, -119, -10, 308, 347, 1054, -1306, 1142, 815, 361, -307, -696, -773, -506, -351, -231, -262, -137, 70, -66, -149, -111, -147, -144, -143, -107, -79, -90, 21, 62, 84, -31, 2, 32, 140, 261, 403, 611, 687, 647, 880, 388, 424, 568, 707, 888, 965, 839, 477, 51, -290, -476, -698, -734, -605, -473, --380, -337, -255, -147, -39, 79, 105, 31, -23, -17, 60, 207, 297, 323, 324, 326, 301, 354, 382, 356, 418, 364, 440, 519, 552, -580, 593, 643, 751, 719, 694, 669, 571, 457, 316, 258, 204, 142, 165, 146, 178, 230, 180, 187, 201, 204, 202, 169, 167, 140, -152, 138, 143, 185, 225, 260, 314, 244, 348, 363, 381, 418, 452, 474, 493, 448, 422, 398, 385, 383, 387, 351, 313, 271, 232, -187, 142, 169, 197, 219, 219, 234, 260, 275, 289, 290, 309, 331, 318, 325, 304, 299, 334, 308, 365, 357, 369, 371, 375, 380, -395, 391, 392, 389, 387, 382, 382, 362, 348, 335, 317, 304, 281, 261, 250, 220, 286, 265, 233, 231, 229, 233, 229, 227, 233, -282, 327, 227, 277, 385, 40, 22, 8, 23, 29, 31, 45, 47, 39, 26, 18, 6, 22, 34, 62, 37, 34, 40, 44, 47, -51, 55, 56, 67, 48, 37, 25, 23, 25, 37, 37, 37, 28, 37, 42, 24, 28, 31, -21, -8, 3, 14, 56, 61, 32, --9, -41, -59, -35, 4, 87, 34, 31, 49, 59, 74, 74, 85, 105, 121, 85, 61, 31, 18, 21, 48, 57, 57, 39, 44, -42, 40, 52, -15, -124, -56, -8, 6, 98, 123, 40, -29, -86, -140, -59, 2, 156, 34, 22, 55, 76, 104, 93, 138, 177, -215, 140, 78, 21, -9, 14, 45, 75, 67, 22, 67, 82, 10, 21, 60, -198, -155, -64, -29, 106, 140, 40, -57, -207, -311, --241, -62, 180, 33, 6, 53, 88, 134, 112, 155, 215, 318, 250, 183, 56, -38, -88, -33, 118, 160, 53, 126, 58, -17, 105, --575, -61, -35, -8, 7, 119, 66, -52, -370, -252, 406, 222, 151, 138, 61, 60, 81, 122, 131, 78, 146, 231, 351, 190, 90, --9, 41, 15, -96, -82, -38, 6, 115, 176, 282, -467, 250, 28, -5, -152, -506, -209, -140, -303, -229, -256, -236, -175, -99, -4, --73, -113, -64, -29, 59, 106, 126, 84, -83, 1, 56, 32, 21, -26, -70, -68, -130, -132, -268, -306, -230, 167, -202, 106, 274, -299, 193, 142, 10, -291, -338, -323, -186, -105, -102, -62, -134, -141, -72, -139, -85, -7, 64, 71, -98, -33, 49, 15, -10, -4, -27, -12, -104, -135, -51, -155, -238, -288, -352, -869, -1607, -1528, -805, -586, -343, -158, -239, -214, -110, -110, -60, 0, -85, -129, -96, --75, 7, 146, 28, -17, -90, -72, -56, -55, 12, -19, -117, -124, -163, -314, -284, -269, -71, -135, 1105, 1169, 906, 473, -49, -640, --782, -463, -373, -316, -319, -368, -330, -216, -65, -9, -37, -88, -98, -50, 12, 38, -96, 1, 13, -15, -15, 9, 84, 123, 238, -372, 692, 814, 746, 945, 487, 497, 586, 643, 684, 666, 396, -99, -360, -482, -479, -546, -522, -436, -466, -409, -359, -270, -180, -61, -35, 38, 0, -13, 16, 110, 212, 291, 349, 348, 350, 320, 378, 411, 402, 477, 440, 525, 638, 720, 817, 781, 805, 863, 723, -556, 398, 328, 248, 169, 115, 58, -23, -17, -31, -19, 71, 102, 173, 207, 230, 260, 211, 209, 170, 202, 196, 215, 261, 286, -317, 391, 421, 523, 515, 508, 517, 521, 513, 512, 471, 466, 446, 437, 416, 390, 360, 332, 309, 286, 259, 218, 208, 240, 254, -258, 267, 293, 325, 353, 364, 392, 415, 416, 431, 434, 436, 481, 419, 468, 449, 453, 446, 451, 455, 462, 458, 450, 443, 428, -418, 413, 403, 393, 382, 364, 351, 340, 324, 316, 290, 348, 335, 307, 310, 313, 325, 327, 333, 343, 380, 418, 352, 393, 453, -48, 31, 19, 23, 29, 31, 51, 51, 38, 31, 22, 13, 17, 28, 60, 43, 44, 50, 55, 57, 60, 65, 64, 64, 52, -43, 30, 32, 35, 51, 41, 37, 34, 37, 47, 44, 39, 25, 9, 9, 11, 4, 61, 65, 26, 11, -18, -35, -47, -20, -71, 36, 44, 63, 76, 90, 90, 105, 116, 113, 84, 61, 33, 31, 39, 75, 59, 53, 48, 32, 40, 78, 58, -28, -100, --70, -62, -50, 97, 101, 12, -16, -76, -127, -120, -68, 119, 35, 41, 75, 102, 129, 123, 173, 192, 195, 128, 76, 24, 11, -45, 99, 73, 48, 42, 34, 59, 96, 48, -12, -105, -98, -114, -140, 89, 105, -13, -16, -147, -245, -288, -169, 111, 17, 25, -77, 124, 170, 153, 201, 241, 298, 219, 144, 36, -27, -48, 34, 105, 114, 49, 48, 12, 90, 88, -384, -114, -111, 17, 45, -215, 177, 25, -259, -216, 279, 38, 5, 155, 33, 22, 57, 91, 126, 134, 223, 276, 300, 181, 90, -11, 40, 39, -59, -25, -10, 36, 183, 215, 232, -305, 116, 203, 148, -87, -487, -451, -351, -153, -199, -183, -102, -212, -173, -24, -55, -66, -56, 11, 93, -167, 86, 52, -11, 38, 86, 41, 9, -30, -36, -39, -95, -116, -233, -258, -175, 41, 1, 220, 173, 123, 205, 251, 170, -36, --237, -263, -165, -99, -36, 19, -3, -1, 51, -22, 14, 145, 75, 73, -4, 5, 37, 38, 18, 7, 17, -31, -122, -185, -95, --162, -307, -143, -749, -1084, -1182, -992, -468, -486, -387, -118, -217, -135, 0, -56, -74, -91, -90, -102, -103, -25, 49, 196, -2, -69, --70, -30, -5, -12, 18, -3, -63, -124, -179, -279, -306, -377, -393, -502, 922, 742, 418, 17, -531, -677, -587, -315, -320, -315, -334, --253, -247, -332, -199, -64, -27, -65, -19, 68, 71, 80, -61, 18, 12, -60, -29, 7, 83, 76, 158, 248, 604, 774, 753, 826, -594, 602, 627, 568, 453, 212, -142, -523, -540, -492, -426, -367, -329, -258, -385, -400, -320, -283, -233, -135, -78, -51, -18, 48, 119, -218, 237, 275, 341, 372, 408, 437, 390, 390, 446, 542, 500, 546, 622, 697, 812, 752, 747, 731, 497, 241, -12, -17, -38, -42, --37, -37, -62, -53, -37, -35, 19, 88, 147, 174, 204, 226, 224, 234, 228, 275, 290, 334, 379, 401, 420, 468, 543, 553, 531, -511, 489, 473, 448, 444, 428, 452, 443, 436, 408, 375, 350, 325, 304, 285, 260, 234, 265, 271, 286, 299, 321, 341, 371, 397, -415, 436, 456, 462, 477, 489, 505, 526, 461, 468, 459, 454, 447, 450, 451, 448, 445, 436, 432, 417, 408, 404, 394, 384, 374, -361, 350, 332, 355, 359, 359, 375, 380, 374, 376, 381, 389, 394, 402, 411, 433, 445, 439, 454, 473, 61, 42, 30, 38, 45, -46, 66, 66, 53, 50, 39, 17, 22, 31, 63, 55, 58, 61, 66, 70, 74, 76, 73, 65, 62, 52, 35, 41, 45, 66, -46, 41, 45, 45, 58, 69, 51, 39, 22, 34, 35, 16, 71, 79, 43, 44, 8, -45, -52, -26, 67, 54, 68, 77, 92, -105, 106, 121, 127, 110, 87, 65, 41, 45, 57, 104, 67, 59, 68, 34, 53, 139, 79, 9, -48, -18, 3, -5, 112, 123, -40, 52, -28, -151, -145, -95, 96, 54, 73, 92, 119, 147, 152, 197, 205, 179, 126, 78, 33, 25, 67, 154, 76, 47, 84, -28, 58, 214, 78, 69, 2, 18, -15, -108, 83, 110, 9, 63, -73, -281, -309, -203, 100, 60, 85, 115, 162, 208, 198, 250, -271, 274, 198, 121, 33, -20, -6, 119, 105, 84, 76, -2, 37, 298, 157, -291, -197, -116, 66, 159, 250, 216, 183, -125, -170, -57, -18, -13, 107, 29, 15, 46, 92, 131, 142, 293, 319, 260, 173, 98, 7, 54, 51, -39, -6, 47, 115, 224, 192, 97, --214, 57, 505, 253, -88, -394, -605, -497, -15, -83, -38, -18, -123, -150, -111, -76, -39, 31, 69, 119, 198, 70, 43, 50, 62, -91, 31, -13, -45, -19, -24, -85, -137, -189, -171, -115, -71, 151, 157, -22, -19, 78, 283, 290, 88, -69, -118, -113, -101, -51, --40, 84, 115, 103, 67, 109, 287, 83, 64, 69, 52, 48, 39, 36, 6, 10, -55, -128, -169, -77, -149, -322, -1, -886, -924, --461, -313, -417, -368, -336, -251, -138, -30, -12, -106, -169, -227, -199, -119, -68, 30, 95, 217, -11, -66, -31, -8, 20, 6, 17, --1, -16, -103, -153, -210, -208, -348, -557, -688, 506, 138, -280, -493, -745, -486, -294, -256, -268, -252, -178, -153, -117, -118, -211, -187, --93, -76, 4, 123, 24, 18, 13, 48, 29, -63, -9, 16, 30, 9, 41, 74, 361, 537, 594, 513, 739, 750, 689, 504, 263, --213, -519, -626, -535, -443, -376, -297, -272, -220, -261, -283, -200, -247, -221, -148, -159, -108, -60, 62, 168, 273, 250, 259, 314, 388, -463, 558, 446, 438, 570, 666, 472, 489, 494, 516, 589, 510, 446, 343, 149, -52, -270, -243, -234, -231, -183, -140, -102, -54, -4, -35, 57, 89, 101, 119, 139, 142, 197, 246, 291, 343, 372, 428, 443, 449, 438, 460, 529, 482, 456, 434, 395, 367, 343, 336, -328, 338, 328, 307, 277, 257, 236, 210, 180, 150, 109, 82, 197, 189, 228, 258, 312, 338, 364, 385, 410, 425, 444, 466, 468, -478, 492, 485, 444, 427, 425, 416, 411, 413, 411, 406, 394, 381, 375, 361, 350, 337, 327, 318, 312, 306, 305, 275, 328, 344, -373, 358, 376, 396, 400, 406, 412, 421, 430, 438, 442, 437, 453, 449, 477, 73, 53, 49, 53, 59, 55, 78, 79, 59, 67, -57, 28, 31, 38, 60, 64, 70, 71, 76, 80, 87, 85, 80, 71, 69, 60, 46, 52, 58, 81, 57, 52, 62, 54, 66, -96, 62, 53, 42, 51, 45, 26, 78, 89, 40, 72, 40, -36, -43, -28, 39, 63, 86, 88, 101, 114, 120, 130, 134, 108, -92, 74, 52, 58, 70, 121, 76, 66, 87, 42, 66, 182, 99, 31, -25, 17, 38, 14, 125, 142, 17, 97, 23, -146, -143, --106, 26, 57, 93, 102, 124, 153, 173, 208, 207, 161, 126, 83, 45, 38, 78, 182, 78, 56, 119, 32, 63, 283, 97, 78, --4, 34, -1, -82, 71, 105, -41, 100, 2, -278, -314, -247, -29, 52, 121, 140, 168, 211, 222, 277, 283, 252, 193, 122, 51, --18, 26, 194, 108, 71, 114, -28, 59, 419, 183, -230, -127, -17, 141, 327, 293, 247, 271, 18, -71, -49, 43, 62, 73, 41, -25, 37, 102, 167, 163, 317, 340, 226, 171, 116, 36, 71, 55, -34, -1, 78, 189, 244, 144, -55, -189, 64, 653, 165, -173, --281, -603, -498, 45, 0, 66, 72, -19, -83, -78, -105, -71, 43, 67, 104, 177, 49, 35, 93, 80, 90, 42, -13, -42, -16, -0, -44, -107, -103, -69, -46, -118, 80, -18, -96, -30, -14, 256, 307, 102, 45, -38, -114, -172, -121, 39, -11, 4, 79, 92, -159, 346, 92, 51, 138, 83, 49, 34, 36, 0, 6, -73, -122, -136, -115, -207, -308, -3, -781, -449, -6, 14, -368, -329, -308, --300, -90, -9, -12, -111, -157, -123, -214, -145, -56, 46, 108, 205, 20, -44, -4, -3, 34, 36, 11, -4, 0, -65, -112, -143, --125, -301, -572, -713, -2, -505, -907, -865, -673, -297, -118, -150, -143, -135, -60, -176, -185, -78, -116, -139, -130, -35, 15, 89, -33, --19, 88, 51, 20, -39, 24, 43, -10, -62, -77, -86, 62, 203, 327, 139, 840, 807, 648, 359, -14, -436, -602, -564, -428, -330, --302, -191, -154, -156, -157, -165, -133, -166, -142, -75, -137, -117, -77, 42, 144, 223, 226, 241, 279, 408, 500, 575, 509, 525, 671, -734, 434, 439, 368, 335, 334, 216, 73, -111, -203, -298, -414, -376, -354, -340, -295, -254, -209, -151, -109, -38, 35, 61, 84, 103, -117, 132, 203, 272, 343, 381, 420, 473, 470, 469, 458, 456, 449, 375, 355, 333, 300, 271, 261, 254, 234, 209, 180, 141, 100, -66, 58, 46, 30, 16, -1, -24, 62, 61, 107, 155, 214, 239, 266, 292, 330, 349, 376, 420, 412, 421, 415, 391, 384, 322, -330, 322, 319, 320, 317, 315, 296, 283, 272, 258, 244, 224, 226, 225, 225, 223, 227, 207, 271, 307, 361, 293, 337, 398, 406, -412, 417, 430, 439, 450, 414, 373, 451, 413, 379, 86, 73, 71, 68, 72, 67, 89, 90, 66, 83, 74, 40, 44, 47, 56, -73, 80, 82, 86, 91, 100, 97, 92, 79, 80, 74, 61, 66, 72, 92, 70, 67, 79, 68, 78, 115, 80, 86, 90, 72, -58, 41, 91, 103, 47, 100, 72, -19, -25, -23, 11, 63, 94, 98, 110, 123, 140, 141, 140, 109, 98, 84, 67, 74, 85, -128, 88, 78, 101, 55, 82, 204, 127, 66, 35, 44, 60, 32, 136, 144, 15, 130, 70, -114, -122, -110, -45, 44, 97, 107, -131, 162, 195, 214, 204, 139, 122, 91, 58, 53, 85, 181, 82, 69, 134, 43, 77, 307, 128, 124, 90, 69, 0, -71, 81, -130, -39, 144, 65, -234, -279, -277, -159, 8, 114, 143, 169, 210, 247, 287, 285, 220, 184, 129, 67, -7, 50, 233, 108, 73, -139, -26, 80, 473, 237, -188, -37, 28, 211, 505, 296, 186, 185, 124, 71, -46, 82, 91, 61, 37, 18, 27, 78, 167, 235, -312, 313, 206, 181, 145, 61, 84, 55, -34, 4, 107, 236, 270, 129, -132, -198, 58, 681, 72, -243, -257, -484, -329, 187, 81, -89, 159, 96, 23, -20, -72, -66, -26, 32, 72, 146, 49, 54, 122, 96, 84, 64, -1, -25, 3, 52, 13, -58, -43, -39, --9, -140, -36, -80, -70, 9, 10, 233, 241, 117, 89, 30, -1, -107, -89, 48, -2, -1, 29, 100, 156, 311, 97, 39, 152, -107, 57, 29, 48, 10, -4, -85, -108, -95, -187, -252, -270, -59, -516, 4, 156, 41, -269, -349, -317, -223, -120, -88, -40, -137, --155, -54, -47, -17, -41, 43, 75, 118, 65, 25, 24, 25, 54, 68, 3, -10, 19, -12, -66, -66, -85, -255, -485, -603, -429, --952, -1127, -908, -464, -231, -99, -84, -56, -61, -70, -130, -178, -130, -131, -110, -87, 57, 96, 91, -26, -10, 111, 39, 12, -2, -56, 59, -35, -126, -167, -177, -176, -90, 66, -175, 759, 640, 375, 63, -320, -502, -528, -467, -310, -228, -236, -123, -78, -74, -85, --79, -117, -106, -91, -42, -74, -68, -26, 48, 112, 133, 174, 217, 254, 405, 487, 522, 497, 514, 626, 629, 424, 409, 281, 212, -128, -20, -205, -407, -435, -469, -517, -472, -435, -395, -374, -355, -336, -278, -237, -173, -70, 3, 72, 111, 147, 193, 246, 285, 347, -366, 416, 461, 475, 497, 521, 481, 347, 251, 226, 193, 165, 137, 132, 117, 101, 71, 43, 10, -28, -67, -50, -35, -24, -12, -2, 1, 28, 9, 24, 62, 89, 88, 123, 163, 217, 244, 274, 337, 320, 326, 304, 269, 236, 154, 166, 157, 150, 145, 135, -128, 114, 104, 95, 82, 73, 55, 69, 76, 84, 90, 99, 98, 157, 201, 275, 154, 213, 295, 310, 318, 324, 341, 353, 370, -291, 220, 361, 286, 165, 92, 85, 82, 80, 83, 76, 94, 94, 74, 88, 80, 51, 53, 53, 55, 75, 84, 86, 91, 96, -107, 101, 96, 84, 83, 79, 72, 76, 81, 95, 79, 77, 86, 75, 81, 121, 90, 121, 112, 91, 72, 50, 94, 103, 54, -104, 81, -4, -9, -12, 4, 64, 95, 102, 117, 132, 158, 148, 139, 106, 96, 86, 75, 87, 97, 123, 100, 87, 100, 60, -89, 205, 146, 119, 86, 89, 97, 55, 143, 133, 36, 126, 75, -70, -94, -97, -68, 36, 96, 107, 136, 169, 216, 209, 193, -120, 112, 91, 61, 71, 95, 159, 91, 81, 130, 49, 79, 297, 153, 222, 177, 136, 35, -60, 75, 125, -21, 131, 74, -171, --224, -259, -186, 3, 110, 141, 182, 230, 295, 294, 274, 180, 162, 131, 73, 14, 72, 242, 114, 82, 135, -26, 99, 495, 311, --176, -27, 38, 288, 638, 327, 150, 84, 184, 133, -129, 109, 128, 19, 18, 15, 41, 46, 114, 252, 264, 245, 196, 190, 169, -76, 87, 49, -43, 13, 144, 277, 290, 114, -195, -232, 95, 596, 12, -268, -289, -358, -182, 249, 101, 86, 221, 151, 82, 73, -8, -12, -9, 59, 89, 143, 97, 105, 143, 107, 70, 72, 13, -1, 43, 82, 31, -38, -82, -78, 51, -89, -68, -75, -107, --37, 3, 144, 149, 184, 123, 69, 61, -108, -101, 24, 36, 65, 61, 143, 158, 215, 99, 47, 129, 125, 69, 23, 68, 30, --14, -82, -91, -58, -210, -227, -199, -82, -261, 108, 122, 14, -131, -244, -256, -168, -147, -111, 10, -107, -111, 30, 64, 75, 45, -105, 108, 72, 102, 107, 82, 77, 76, 79, 9, -4, 50, 33, -20, 20, -62, -205, -347, -414, -646, -1029, -886, -685, -380, -293, --207, -113, -41, -29, -114, -30, -49, -108, -107, -74, -36, 72, 120, 106, 25, 22, 97, 35, 28, 40, 72, 45, -66, -171, -218, --208, -333, -295, -135, -372, 464, 263, -36, -238, -431, -418, -350, -268, -177, -152, -209, -141, -108, -89, -78, -51, -52, -37, -37, -34, --34, -4, 55, 84, 107, 87, 127, 185, 219, 333, 395, 423, 400, 381, 411, 371, 399, 355, 191, 86, -67, -206, -374, -550, -518, --497, -482, -454, -430, -401, -384, -370, -352, -299, -240, -191, -127, -37, 37, 97, 162, 226, 263, 272, 311, 329, 376, 414, 443, 490, -541, 461, 214, 117, 85, 51, 25, -2, -15, -45, -53, -81, -101, -122, -141, -167, -127, -92, -62, -34, -7, 18, 33, 5, -1, -14, 12, -3, 29, 66, 115, 140, 160, 218, 191, 190, 171, 134, 72, 11, 18, 5, -6, -19, -33, -47, -53, -57, -62, -69, --75, -91, -72, -61, -47, -35, -22, -13, 30, 60, 119, 19, 63, 117, 134, 144, 151, 166, 180, 196, 118, 59, 185, 115, -23, -89, 88, 80, 84, 85, 79, 88, 86, 72, 81, 75, 52, 54, 54, 54, 72, 81, 83, 88, 93, 103, 99, 96, 88, 80, -79, 79, 85, 88, 94, 86, 86, 89, 77, 76, 120, 93, 134, 104, 97, 82, 66, 88, 93, 61, 93, 73, 1, 0, -3, -6, 60, 88, 95, 112, 128, 158, 149, 130, 105, 88, 81, 74, 93, 104, 113, 106, 91, 89, 59, 86, 183, 141, 140, 102, -114, 125, 89, 121, 100, 41, 99, 56, -56, -68, -76, -64, 31, 88, 98, 130, 160, 221, 196, 173, 115, 97, 82, 55, 87, -104, 137, 106, 95, 114, 47, 68, 251, 146, 247, 168, 146, 70, 6, 61, 102, 15, 104, 52, -153, -190, -227, -176, -4, 90, -123, 172, 230, 328, 296, 250, 158, 139, 124, 64, 33, 90, 231, 129, 91, 109, -28, 97, 435, 307, -134, 4, 117, 350, 664, -289, 80, 13, 136, 101, -167, 193, 229, 33, 33, 29, 70, 47, 69, 192, 187, 168, 177, 184, 180, 87, 83, 41, -52, 37, -190, 306, 273, 72, -262, -235, 148, 337, -143, -321, -330, -263, -94, 171, 98, 82, 96, 153, 125, 68, 44, 32, 11, 98, 117, -135, 150, 152, 159, 113, 60, 72, 29, 27, 79, 87, 25, -54, -113, -52, 106, 35, -53, -61, -124, -70, -42, 71, 116, 245, -191, 126, 69, -65, -66, 9, 48, 90, 80, 186, 176, 119, 84, 55, 105, 132, 70, 25, 72, 40, -7, -68, -66, -3, -189, --179, -120, -77, -124, -27, 43, 39, -56, -75, -139, -205, -171, -122, -6, -3, 5, 41, 127, 131, 90, 145, 143, 79, 137, 155, -130, 119, 93, 81, 22, 14, 69, 60, 19, 89, -68, -174, -215, -226, -630, -746, -483, -416, -386, -353, -298, -205, -28, 24, -105, --13, -19, -87, -52, -15, 41, 99, 124, 94, 69, 60, 95, 50, 52, 69, 63, 7, -96, -186, -229, -213, -375, -379, -272, -453, -99, -119, -354, -391, -343, -244, -130, -9, -79, -132, -187, -136, -116, -126, -81, -47, 33, 33, 22, -16, -23, 17, 101, 98, 108, -102, 121, 154, 145, 199, 241, 268, 271, 220, 150, 90, 294, 215, 53, -67, -241, -339, -453, -560, -477, -403, -347, -351, -351, -357, --328, -308, -284, -230, -160, -109, -91, -30, 16, 71, 139, 194, 235, 244, 286, 290, 320, 341, 354, 399, 441, 343, 92, 18, -16, --43, -68, -91, -113, -158, -165, -195, -206, -216, -218, -226, -188, -154, -125, -98, -78, -47, 1, -23, -22, -12, -12, -21, -3, 17, -48, 61, 72, 107, 82, 73, 62, 30, -43, -75, -75, -91, -103, -122, -137, -151, -152, -153, -156, -159, -164, -176, -160, -151, -138, --126, -113, -110, -69, -49, -6, -69, -37, -6, 4, 10, 13, 23, 31, 42, -8, -44, 31, -12, -133, 84, 83, 76, 83, 84, -76, 82, 79, 68, 74, 68, 51, 55, 55, 55, 70, 76, 77, 82, 86, 92, 91, 90, 87, 74, 73, 75, 85, 87, 88, -86, 85, 82, 73, 71, 106, 87, 124, 92, 98, 89, 71, 80, 82, 62, 80, 65, 12, 13, 13, 21, 61, 80, 83, 102, -116, 141, 139, 117, 105, 79, 73, 68, 95, 109, 103, 108, 90, 73, 56, 76, 147, 122, 129, 95, 123, 137, 92, 107, 90, -44, 77, 44, -35, -35, -42, -37, 37, 83, 83, 119, 140, 199, 174, 150, 120, 81, 70, 44, 99, 115, 118, 117, 103, 87, -44, 58, 193, 121, 211, 129, 138, 97, 32, 52, 80, 33, 77, 49, -107, -137, -165, -131, 3, 70, 87, 148, 206, 308, 280, -220, 158, 119, 109, 42, 51, 108, 207, 144, 98, 75, -18, 84, 338, 256, -56, 73, 196, 360, 606, 262, 88, 46, 57, 35, --118, 267, 311, 76, 76, 65, 92, 59, 46, 110, 122, 115, 150, 169, 184, 106, 74, 31, -50, 76, 236, 296, 218, 25, -281, --187, 202, -5, -249, -300, -317, -215, -117, -74, 57, 75, -45, 162, 172, 60, 35, 27, 21, 131, 146, 107, 160, 164, 161, 127, -67, 76, 36, 49, 111, 91, 15, -79, -65, 28, 84, 188, -48, -62, -101, -80, -66, 30, 120, 260, 259, 191, 82, 42, 1, --18, 80, 123, 77, 196, 183, 66, 56, 44, 75, 122, 61, 36, 62, 40, 6, -48, -33, 34, -178, -127, -25, -63, -51, -121, -11, 64, -4, 49, -30, -213, -176, -155, -110, 16, 50, -1, 126, 148, 123, 152, 139, 87, 153, 162, 144, 134, 97, 84, 30, -27, 72, 68, 31, 102, -69, -130, -122, -76, -470, -366, -192, -222, -334, -327, -298, -229, -9, 58, -42, -17, -21, -23, -25, 3, -76, 133, 130, 62, 96, 88, 102, 67, 64, 86, 34, -35, -114, -173, -203, -203, -316, -359, -359, -435, -216, -373, -483, -398, -217, --69, 34, 113, -95, -179, -134, -116, -95, -87, -36, 4, 74, 90, 77, 10, -12, 14, 92, 81, 95, 122, 137, 131, 57, 58, -75, 83, 146, 93, -45, -145, 127, 30, -84, -178, -316, -360, -407, -434, -351, -280, -232, -253, -260, -278, -245, -222, -194, -149, -93, --43, -31, -3, 23, 55, 105, 135, 183, 198, 260, 234, 242, 233, 219, 241, 260, 167, 20, -27, -62, -88, -114, -139, -173, -228, --240, -265, -275, -279, -281, -289, -258, -232, -207, -186, -171, -147, -85, -86, -67, -47, -28, -20, -12, -5, 14, 17, 27, 47, 30, -16, 10, -16, -100, -114, -121, -138, -151, -171, -185, -198, -197, -199, -203, -207, -211, -219, -206, -198, -188, -178, -165, -163, -134, -118, --86, -118, -95, -70, -67, -63, -65, -58, -54, -47, -73, -92, -60, -81, -184, 78, 74, 70, 79, 79, 68, 74, 72, 65, 66, -63, 57, 57, 57, 59, 67, 71, 70, 74, 77, 79, 80, 80, 82, 67, 66, 68, 81, 83, 79, 81, 79, 71, 67, 64, -88, 75, 109, 83, 92, 83, 58, 68, 68, 63, 69, 64, 41, 35, 36, 41, 69, 79, 74, 87, 96, 112, 120, 102, 102, -69, 64, 61, 97, 111, 93, 103, 84, 55, 51, 64, 111, 101, 105, 82, 125, 129, 66, 88, 75, 53, 61, 43, 22, 8, -4, 5, 54, 82, 70, 100, 110, 150, 143, 125, 122, 66, 59, 35, 112, 127, 103, 119, 100, 61, 42, 49, 136, 92, 178, -105, 127, 92, 1, 29, 46, 44, 61, 74, 4, -50, -70, -56, 43, 74, 62, 117, 159, 238, 239, 186, 158, 99, 88, 13, -70, 128, 178, 148, 92, 38, -11, 63, 244, 206, -33, 95, 235, 346, 501, 240, 120, 101, -17, -49, -90, 251, 303, 88, 97, -98, 115, 78, 38, 42, 70, 81, 132, 154, 180, 134, 62, 18, -39, 126, 274, 254, 158, -4, -246, -165, 260, -282, -247, -231, --273, -199, -206, -340, 30, 111, -87, 121, 155, 119, 67, 33, 21, 140, 158, 73, 137, 146, 146, 151, 90, 78, 37, 63, 144, -90, 7, -87, 1, 81, 22, 328, -59, -71, -89, -69, -8, 5, 108, 237, 252, 190, 80, 96, 33, -19, 51, 98, 63, 165, -155, 33, 30, 18, 38, 92, 42, 52, 55, 35, 19, -30, 0, 53, -135, -37, 58, -48, 4, -93, 6, 52, 68, 99, 27, --152, -154, -161, -185, -25, 46, 29, 85, 107, 125, 133, 114, 74, 136, 134, 124, 133, 93, 75, 32, 26, 63, 55, 21, 67, --46, -68, -64, 22, -313, -138, -74, -119, -225, -247, -229, -164, -36, -2, -50, -1, 22, 22, 38, 67, 98, 130, 109, 30, 102, -98, 89, 69, 63, 96, 5, -64, -115, -143, -161, -187, -247, -317, -410, -386, -403, -470, -473, -349, -167, 4, 57, 9, -133, -163, --71, -91, -69, -30, -1, 45, 70, 118, 113, 37, 23, 25, 56, 54, 71, 110, 124, 93, -14, -48, -58, -69, 27, -11, -152, --290, -30, -116, -166, -208, -273, -276, -267, -239, -197, -175, -159, -173, -175, -186, -155, -131, -107, -92, -72, -43, -19, -3, 16, 38, -72, 90, 129, 141, 208, 158, 144, 105, 74, 73, 75, 2, -15, -53, -84, -111, -138, -166, -204, -252, -263, -274, -281, -283, -290, --306, -280, -260, -236, -215, -193, -175, -147, -121, -97, -71, -48, -26, -21, -17, -4, -2, 12, 29, 16, 1, -7, -32, -128, -134, --144, -157, -170, -184, -195, -207, -205, -208, -211, -216, -218, -223, -211, -203, -194, -185, -175, -166, -160, -150, -133, -138, -127, -107, -106, --102, -104, -96, -95, -88, -104, -116, -104, -116, -205, 70, 66, 60, 72, 70, 57, 63, 63, 61, 58, 57, 61, 58, 58, 60, -64, 65, 63, 64, 65, 63, 70, 73, 79, 61, 63, 65, 81, 83, 75, 79, 75, 64, 63, 58, 75, 67, 91, 62, 75, -69, 40, 51, 54, 61, 59, 65, 70, 54, 53, 56, 73, 76, 68, 70, 72, 80, 101, 87, 97, 62, 58, 56, 98, 112, -86, 93, 75, 43, 48, 56, 84, 79, 79, 66, 115, 109, 34, 58, 57, 61, 47, 43, 75, 43, 44, 45, 71, 81, 65, -75, 72, 95, 109, 101, 121, 57, 54, 34, 126, 138, 94, 113, 91, 45, 39, 37, 86, 62, 125, 64, 86, 63, -37, -6, -13, 55, 52, 97, 111, 31, 14, 14, 77, 84, 59, 76, 93, 144, 183, 151, 164, 85, 67, -9, 90, 148, 146, 136, 78, -10, -3, 46, 164, 145, -52, 100, 262, 320, 384, 209, 135, 137, -62, -121, -124, 152, 238, 109, 101, 102, 122, 90, 44, 7, -32, 53, 118, 136, 167, 162, 52, 6, -12, 175, 291, 196, 107, -35, -238, -188, 304, -453, -243, -183, -207, -165, -232, -431, 42, -158, -95, 85, 130, 145, 107, 80, 56, 142, 157, 62, 111, 123, 121, 174, 114, 80, 46, 81, 167, 87, 9, -77, 41, 113, -0, 429, -99, -103, -50, -4, 92, 2, 81, 196, 215, 179, 70, 121, 56, -8, -3, 40, 49, 108, 92, -2, 2, -16, -6, -54, 24, 60, 55, 31, 32, -9, 32, 71, -33, 50, 72, -73, 63, 15, 22, 39, 143, 102, 28, -93, -139, -157, -235, -47, -44, 48, 64, 77, 97, 99, 84, 54, 94, 88, 81, 119, 85, 59, 30, 20, 51, 31, 1, 6, -27, -16, -19, 79, -231, --92, -45, -58, -118, -164, -143, -81, -73, -78, -96, -17, 29, 26, 80, 119, 141, 109, 77, 29, 98, 94, 53, 60, 56, 92, --14, -75, -95, -101, -116, -168, -218, -302, -434, -343, -438, -442, -390, -294, -174, -61, -70, -179, -136, -85, -27, -59, -51, -10, 14, -51, 73, 108, 110, 57, 60, 50, 33, 35, 47, 86, 72, 33, -60, -117, -143, -155, -73, -89, -174, -322, -146, -220, -221, -212, --210, -175, -116, -55, -63, -88, -99, -94, -85, -84, -55, -29, -7, -29, -47, -65, -43, -27, -7, 19, 45, 68, 87, 91, 142, -82, 53, -3, -38, -60, -74, -128, -38, -73, -99, -127, -155, -184, -224, -256, -254, -240, -236, -231, -233, -242, -224, -210, -187, -168, --141, -124, -132, -95, -78, -60, -43, -17, -15, -15, -10, -6, 6, 23, 7, -6, -15, -39, -134, -128, -138, -148, -157, -166, -172, --186, -179, -181, -181, -183, -181, -181, -172, -166, -161, -154, -149, -135, -149, -150, -154, -127, -132, -130, -128, -123, -122, -115, -114, -108, --117, -118, -128, -130, -181, 60, 56, 50, 61, 58, 44, 50, 52, 55, 50, 51, 59, 52, 53, 56, 58, 58, 56, 53, 53, -50, 58, 62, 72, 53, 57, 59, 76, 78, 68, 71, 67, 57, 56, 52, 62, 57, 62, 40, 56, 52, 20, 31, 37, 57, -51, 60, 80, 55, 53, 59, 67, 67, 62, 54, 51, 54, 77, 72, 86, 54, 52, 54, 96, 108, 77, 82, 66, 38, 46, -50, 63, 56, 54, 49, 92, 75, -1, 25, 35, 65, 41, 44, 100, 50, 55, 64, 78, 78, 65, 53, 43, 52, 76, 80, -110, 50, 53, 41, 135, 145, 90, 106, 83, 40, 42, 34, 55, 40, 54, 17, 41, 25, -80, -52, -24, 60, 51, 103, 170, -64, 39, 41, 79, 81, 60, 39, 35, 62, 119, 120, 171, 80, 51, -13, 110, 162, 114, 118, 67, 0, 13, 41, 110, 85, --33, 139, 258, 260, 284, 210, 171, 156, -69, -155, -165, 41, 168, 175, 126, 109, 125, 97, 65, 8, 11, 36, 101, 112, 145, -181, 46, 1, 27, 214, 289, 131, 76, -51, -250, -183, 281, -546, -210, -114, -137, -144, -196, -320, 86, 192, -66, 80, 116, 138, -121, 108, 109, 139, 140, 68, 96, 98, 90, 182, 133, 82, 68, 104, 174, 77, 15, -36, 70, 133, -10, 448, -142, -138, 29, -84, 171, 27, 61, 126, 191, 197, 71, 145, 66, -44, -42, -3, 55, 58, 35, -29, -21, -42, -47, 11, 10, 64, 55, 33, -42, 20, 54, 59, 41, 90, 37, -111, 120, 118, 58, 55, 174, 90, 13, -60, -105, -130, -236, -70, 20, 39, 36, 62, 97, -85, 73, 45, 52, 49, 44, 98, 75, 45, 31, 21, 38, 12, -13, -40, -18, 11, 5, 103, -206, -131, -53, -32, -72, -100, --79, -21, -104, -121, -85, -45, -14, 15, 72, 103, 132, 60, 35, 40, 79, 69, 15, 48, 46, 68, -22, -70, -62, -63, -88, --158, -233, -325, -444, -311, -373, -348, -287, -246, -187, -194, -228, -266, -131, -54, -51, -51, -38, -10, 33, 57, 105, 90, 88, 72, -81, 72, 29, 32, 30, 63, 4, -39, -96, -157, -187, -194, -133, -122, -134, -275, -244, -307, -274, -230, -181, -114, -31, 37, 7, --26, -41, -23, -8, 4, 32, 58, 88, 44, 12, -39, -43, -30, -19, 12, 35, 68, 64, 56, 79, 22, -12, -68, -114, -159, --194, -235, -59, -93, -108, -128, -153, -176, -207, -222, -206, -181, -166, -155, -148, -146, -139, -133, -119, -108, -88, -74, -85, -50, -37, --27, -15, 13, 5, -2, -8, -8, -4, 6, -12, -22, -27, -50, -111, -96, -103, -108, -111, -115, -116, -127, -119, -118, -116, -113, --109, -104, -101, -100, -100, -96, -95, -86, -106, -115, -135, -81, -98, -114, -113, -108, -107, -103, -104, -104, -101, -91, -125, -115, -108, -49, 46, 44, 48, 44, 30, 37, 39, 45, 41, 42, 54, 41, 41, 45, 47, 48, 48, 44, 43, 40, 47, 50, 61, 42, -49, 54, 70, 71, 61, 62, 58, 50, 50, 45, 52, 47, 39, 31, 41, 35, 3, 11, 20, 47, 43, 51, 79, 38, 30, -39, 48, 53, 53, 42, 38, 38, 56, 56, 66, 45, 47, 53, 92, 100, 69, 70, 58, 35, 45, 47, 50, 41, 42, 47, -71, 42, -35, -4, 8, 55, 34, 39, 107, 25, 27, 44, 61, 64, 62, 41, 30, 30, 52, 60, 81, 42, 55, 55, 139, -149, 90, 101, 78, 42, 51, 40, 42, 33, 10, 9, 26, 1, -113, -95, -59, 52, 48, 94, 189, 39, -9, 1, 38, 61, -54, 21, 6, 14, 67, 89, 155, 77, 47, 3, 127, 172, 91, 101, 64, 7, 30, 43, 79, 50, 31, 172, 196, 166, 204, -224, 208, 139, -53, -156, -175, -59, 91, 252, 161, 126, 130, 108, 90, 38, 20, 35, 80, 85, 119, 184, 45, 8, 77, 245, -272, 81, 67, -38, -228, -114, 155, -550, -114, -15, -102, -127, -148, -202, 117, 206, -16, 67, 97, 136, 138, 132, 138, 117, 105, -67, 76, 73, 66, 172, 143, 82, 92, 127, 171, 53, 20, 26, 94, 129, -13, 345, -131, -125, 101, 152, 187, 41, 24, 31, -141, 185, 92, 136, 60, -37, -73, -34, 90, 28, -7, -46, -38, -52, -64, -25, 6, 74, 56, 37, 48, 43, 61, 27, 82, -119, 25, -96, 137, 156, 97, 87, 131, 80, 36, -14, -51, -80, -169, -78, -16, 24, -2, 27, 98, 80, 76, 51, 26, 19, -25, 70, 59, 37, 38, 30, 29, 10, -7, -54, -18, 7, -9, 91, -214, -151, -95, -53, -33, -46, -43, -22, -152, -158, -71, --60, -33, -3, 60, 79, 84, 14, -2, 35, 42, 34, 3, 38, 30, 29, -23, -52, -35, -41, -83, -163, -262, -352, -426, -298, --273, -251, -211, -216, -219, -294, -304, -237, -148, -92, -86, -56, -30, -15, 36, 60, 115, 67, 61, 78, 83, 76, 32, 35, 21, -34, -57, -106, -132, -180, -204, -211, -167, -131, -88, -200, -304, -344, -296, -249, -188, -110, -32, 31, 9, -4, -14, 16, 37, 57, -83, 106, 137, 96, 73, 29, 0, -3, -11, 13, 33, 65, 51, 27, 29, -20, -47, -93, -150, -214, -266, -294, -84, -111, -112, --118, -130, -140, -153, -150, -133, -110, -93, -82, -71, -62, -67, -70, -69, -66, -59, -54, -58, -25, -11, -2, 11, 37, 18, 6, --7, -14, -18, -16, -33, -39, -46, -64, -70, -61, -61, -61, -59, -57, -55, -59, -53, -51, -47, -43, -39, -32, -34, -35, -37, --37, -39, -35, -51, -59, -78, -28, -42, -55, -58, -56, -59, -59, -65, -70, -63, -53, -89, -77, -31, 37, 40, 39, 36, 30, -18, 24, 26, 35, 31, 32, 44, 25, 23, 25, 32, 34, 38, 34, 34, 31, 38, 39, 47, 32, 42, 50, 63, 64, 54, -55, 51, 44, 44, 38, 44, 41, 29, 32, 27, 18, -11, -7, 4, 36, 35, 40, 68, 10, -6, 3, 18, 33, 43, 36, -33, 29, 42, 39, 41, 34, 42, 54, 86, 92, 63, 62, 51, 33, 45, 48, 41, 34, 47, 64, 55, 14, -47, -28, -11, -46, 30, 31, 95, -16, -27, -11, 23, 39, 54, 38, 29, 25, 41, 43, 44, 30, 54, 70, 142, 151, 95, 100, 79, 47, -61, 47, 36, 38, -3, 27, 22, -15, -119, -130, -85, 44, 49, 75, 173, -16, -94, -83, -33, 24, 50, 26, 9, -1, 36, -58, 111, 68, 49, 32, 146, 181, 86, 92, 69, 20, 50, 57, 62, 36, 109, 189, 121, 78, 131, 248, 246, 97, -14, -127, --178, -139, 18, 287, 179, 139, 133, 113, 105, 73, 54, 56, 71, 66, 94, 172, 44, 24, 132, 257, 240, 63, 55, -36, -188, --18, -52, -485, -23, 71, -92, -91, -94, -133, 116, 191, 37, 45, 69, 142, 155, 165, 167, 100, 73, 62, 50, 48, 54, 148, -141, 79, 118, 149, 161, 38, 31, 83, 98, 110, 46, 144, -55, -46, 155, 186, 173, 26, -39, -53, 34, 105, 117, 112, 63, -0, -66, -47, 94, 4, -35, -49, -48, -48, -52, -45, 8, 85, 56, 40, 49, 52, 57, 6, 108, 137, 45, -27, 101, 139, -112, 109, 104, 103, 101, 75, 7, -32, -79, -75, -48, -17, -19, 13, 86, 77, 79, 56, 11, -3, 16, 39, 38, 33, 52, -46, 24, 24, 11, -56, -33, -19, -45, 46, -220, -131, -118, -68, 17, -3, -36, -71, -182, -172, -71, -66, -22, 3, 49, 56, -39, -2, -9, 32, 15, 11, 6, 28, 12, -14, -24, -34, -23, -38, -93, -172, -272, -344, -359, -283, -194, -189, -172, -204, -249, --282, -261, -188, -150, -110, -76, -55, -33, -17, 31, 58, 72, 38, 36, 70, 71, 65, 37, 41, 16, -6, -105, -152, -157, -189, --209, -221, -199, -152, -80, -148, -293, -308, -272, -247, -210, -147, -92, -41, -37, -27, -19, 25, 60, 90, 96, 105, 120, 101, 90, -71, 44, 28, 9, 17, 28, 48, 31, -11, -20, -54, -61, -87, -143, -208, -261, -279, -108, -134, -123, -115, -108, -104, -97, -82, --66, -47, -33, -22, -12, 4, -6, -13, -19, -21, -20, -23, -37, -11, -2, 6, 12, 25, 3, -9, -20, -33, -42, -44, -58, --63, -73, -89, -41, -48, -40, -36, -31, -26, -22, -20, -15, -11, -5, 0, 5, 12, 9, 8, 6, 5, 1, 3, -7, -11, --21, 3, -2, 0, -4, -5, -11, -14, -22, -30, -31, -32, -46, -43, 8, 24, 33, 34, 24, 16, 5, 10, 13, 23, 18, -19, 30, 8, 3, 3, 13, 19, 26, 25, 25, 22, 27, 26, 30, 19, 31, 43, 53, 54, 45, 44, 41, 34, 35, 30, -34, 33, 23, 34, 17, 2, -24, -23, -11, 21, 22, 24, 48, -16, -38, -34, -15, 7, 30, 31, 31, 22, 30, 23, 14, -18, 32, 54, 77, 82, 57, 54, 44, 27, 45, 48, 34, 29, 60, 86, 44, -6, -57, -49, -32, 31, 15, 12, 66, -57, --81, -74, -27, 5, 44, 40, 38, 24, 34, 27, 6, 14, 48, 82, 139, 148, 99, 98, 80, 46, 69, 55, 36, 49, -2, -58, 22, -29, -119, -153, -107, 24, 32, 47, 136, -62, -165, -170, -115, -29, 40, 39, 30, 4, 24, 30, 52, 50, 54, 66, -166, 193, 98, 94, 77, 30, 77, 87, 58, 35, 196, 224, 77, 21, 67, 252, 251, 38, 12, -110, -213, -212, -55, 269, 183, -147, 134, 110, 106, 98, 92, 86, 80, 57, 70, 150, 40, 45, 186, 249, 198, 63, 28, -57, -141, 76, -282, -407, 27, 121, --81, -38, -42, -91, 75, 141, 94, 41, 44, 116, 154, 177, 176, 86, 49, 57, 28, 29, 47, 112, 122, 73, 141, 171, 147, -39, 48, 122, 86, 102, 151, -83, 67, 78, 223, 214, 161, 12, -94, -94, -88, -10, 110, 70, 60, 8, -24, -23, 70, -19, --51, -39, -47, -35, -25, -46, 15, 91, 56, 42, 46, 60, 51, -7, 107, 135, 75, 71, 34, 84, 87, 102, 104, 140, 170, -194, 64, 4, 16, -67, -67, -46, -15, 20, 89, 90, 89, 61, 4, -14, 15, 11, 14, 26, 63, 65, 28, 44, 27, -55, --49, -39, -73, -14, -206, -105, -99, -49, 44, 7, -60, -144, -184, -157, -66, -59, -19, 14, 32, 25, 4, -13, -10, 29, 4, -1, 4, 18, -1, -49, -27, -28, -29, -47, -104, -172, -253, -300, -268, -250, -150, -149, -144, -181, -237, -210, -173, -147, -101, -82, --71, -56, -35, -4, 33, 49, 20, 14, 21, 56, 59, 57, 42, 41, 6, -48, -135, -171, -164, -188, -211, -234, -234, -194, -124, --135, -233, -238, -221, -218, -211, -175, -148, -117, -96, -68, -40, 15, 61, 106, 84, 74, 68, 70, 67, 68, 58, 48, 41, 22, -18, 15, -4, -60, -79, -90, -71, -71, -112, -159, -197, -214, -141, -165, -144, -122, -99, -80, -57, -31, -15, 1, 14, 25, 35, -57, 49, 47, 41, 38, 38, 34, 2, 8, 5, 3, -4, -9, -29, -38, -47, -62, -78, -82, -97, -101, -113, -129, -44, -61, --47, -40, -33, -26, -19, -14, -9, -2, 5, 13, 19, 26, 23, 23, 22, 20, 17, 20, 11, 9, 5, 5, 4, 15, 12, -9, 2, -2, -9, -18, -30, -39, -31, -40, 3, 11, 26, 29, 13, 4, -6, -4, 0, 12, 6, 5, 14, -8, -13, -17, --5, 3, 14, 15, 16, 12, 15, 14, 14, 7, 19, 36, 42, 43, 35, 35, 32, 24, 26, 21, 25, 25, 23, 37, 8, --11, -32, -37, -27, 9, 5, 6, 23, -34, -60, -64, -45, -18, 15, 26, 28, 15, 19, 6, -8, 3, 21, 50, 66, 70, -51, 47, 37, 18, 42, 47, 26, 25, 75, 108, 34, -23, -63, -69, -54, 23, -5, -10, 28, -83, -116, -124, -76, -31, 29, -42, 47, 25, 25, 10, -24, -3, 38, 85, 131, 139, 99, 96, 81, 37, 75, 63, 36, 61, 22, 101, 22, -41, -109, -165, --126, 14, 6, 14, 82, -85, -198, -228, -183, -85, 21, 51, 54, 14, 18, 2, -5, 27, 55, 94, 183, 205, 111, 99, 85, -34, 102, 116, 55, 43, 277, 249, 54, -14, -2, 219, 223, -22, 24, -103, -262, -263, -119, 190, 162, 146, 127, 101, 94, 103, -118, 111, 95, 56, 52, 126, 31, 65, 241, 230, 152, 65, -10, -80, -76, 163, -477, -332, 30, 131, -49, 24, -5, -118, -9, -66, 138, 42, 25, 74, 139, 174, 162, 65, 25, 52, 18, 19, 41, 72, 93, 63, 155, 182, 129, 44, 60, 132, 81, 117, -250, -276, 204, 226, 286, 234, 156, 31, -91, -97, -161, -95, 97, 34, 58, 34, 7, -11, 41, -28, -53, -27, -35, -21, -2, --37, 22, 91, 56, 44, 39, 69, 55, -9, 103, 132, 114, 176, -41, -2, 44, 86, 101, 179, 229, 285, 102, 23, 95, -64, --90, -48, 3, 35, 88, 97, 92, 66, 5, -13, 14, -6, -3, 11, 64, 79, 37, 55, 33, -45, -47, -36, -82, -62, -165, --86, -64, -23, 33, -8, -91, -206, -170, -125, -46, -29, -7, 18, 11, 1, -16, -17, -7, 20, 3, -1, 1, 11, -5, -71, --37, -39, -47, -57, -103, -152, -206, -234, -197, -197, -119, -114, -115, -138, -162, -138, -105, -95, -53, -55, -71, -48, -22, 20, 33, -27, -8, 3, 13, 42, 47, 48, 49, 30, -13, -82, -144, -169, -164, -187, -219, -253, -258, -229, -181, -134, -173, -174, -167, -175, --182, -170, -164, -152, -126, -91, -57, -7, 38, 90, 60, 43, 25, 38, 43, 53, 56, 60, 68, 22, -1, -36, -53, -112, -137, --127, -92, -72, -95, -115, -134, -152, -170, -180, -152, -125, -96, -68, -38, -8, 6, 17, 28, 39, 49, 70, 67, 71, 69, 68, -67, 67, 41, 22, 6, -8, -22, -41, -58, -66, -74, -92, -114, -123, -137, -141, -151, -161, -60, -73, -59, -51, -43, -36, -30, --22, -18, -11, -4, 3, 9, 15, 13, 13, 13, 12, 11, 13, 8, 6, 5, -9, -9, -1, -4, -8, -14, -19, -25, -33, --46, -55, -45, -56, -15, -1, 18, 21, 2, -8, -15, -16, -12, 3, -5, -7, -1, -18, -23, -30, -19, -11, 2, 6, 8, -2, 4, 2, 0, -4, 7, 26, 29, 30, 24, 25, 23, 11, 16, 11, 14, 17, 24, 35, -3, -23, -39, -49, -40, 1, --9, -8, 3, -39, -64, -79, -64, -38, -1, 19, 24, 8, 7, -10, -23, -12, 8, 44, 52, 56, 43, 40, 31, 7, 38, -41, 13, 20, 83, 118, 20, -37, -64, -85, -70, 20, -19, -24, -5, -87, -121, -148, -107, -60, 8, 41, 51, 23, 12, -9, --42, -20, 22, 81, 114, 123, 92, 93, 80, 24, 74, 63, 28, 62, 48, 118, 11, -51, -98, -170, -136, 17, -15, -8, 40, --76, -184, -241, -215, -125, -8, 57, 70, 19, 6, -27, -47, 0, 48, 110, 192, 212, 117, 103, 92, 37, 120, 134, 43, 45, -328, 249, 46, -40, -83, 164, 177, -74, 28, -92, -292, -279, -158, 86, 127, 135, 107, 94, 88, 97, 128, 121, 100, 57, 37, -100, 18, 78, 289, 200, 104, 55, -57, -105, -21, 231, -580, -268, -23, 98, 7, 75, 25, -145, -100, -15, 171, 45, 13, 55, -116, 154, 134, 46, 7, 42, 18, 19, 40, 43, 68, 58, 160, 180, 105, 50, 65, 112, 88, 141, 299, -387, 321, 344, 314, -242, 165, 94, -24, -99, -187, -144, 67, 5, 57, 82, 51, 7, -4, -32, -49, -27, -23, -9, 11, -23, 30, 84, 51, 42, -35, 77, 69, 14, 107, 126, 145, 261, -113, -84, -6, 67, 100, 206, 267, 308, 147, 66, 139, -36, -84, -44, 25, 54, 76, -80, 69, 56, 10, -9, 2, -17, -13, -4, 54, 78, 42, 53, 30, -25, -34, -17, -65, -93, -117, -53, -35, -17, 5, -25, --102, -214, -132, -83, -31, -1, 17, 25, 7, 0, -13, 0, 11, 16, 4, 2, 5, 3, -13, -77, -53, -60, -66, -62, -88, --115, -143, -167, -160, -143, -91, -86, -79, -82, -68, -71, -47, -30, -32, -46, -53, -26, 1, 39, 21, 3, -22, -3, 10, 30, -34, 38, 55, 9, -40, -106, -141, -160, -165, -190, -227, -267, -272, -249, -218, -123, -124, -117, -114, -129, -139, -145, -156, -160, -127, --87, -51, -23, 5, 43, 28, 21, 10, 25, 34, 49, 53, 60, 74, 7, -34, -98, -107, -155, -177, -157, -122, -97, -97, -92, --90, -106, -174, -159, -134, -111, -86, -60, -30, -7, 0, 1, 6, 13, 20, 33, 34, 38, 40, 42, 40, 44, 41, 7, -10, --28, -40, -61, -73, -83, -91, -110, -131, -147, -154, -158, -164, -162, -66, -71, -63, -55, -49, -44, -39, -30, -30, -25, -20, -16, --13, -9, -9, -9, -8, -7, -6, -6, -5, -7, -7, -25, -24, -21, -25, -29, -36, -41, -45, -52, -58, -62, -61, -65, -30, --11, 8, 12, -7, -17, -22, -25, -22, -5, -14, -16, -12, -23, -28, -37, -29, -22, -10, -3, 0, -6, -7, -9, -12, -15, --6, 14, 15, 17, 12, 14, 12, -1, 6, 1, 0, 6, 18, 24, -14, -33, -43, -58, -49, -6, -19, -17, -9, -33, -56, --81, -72, -52, -20, 8, 16, 0, -6, -24, -34, -25, -6, 37, 37, 41, 34, 32, 24, -4, 32, 33, -5, 9, 76, 105, -4, -49, -61, -97, -84, 13, -31, -31, -22, -71, -104, -148, -120, -79, -18, 32, 46, 17, -2, -27, -50, -37, 4, 73, 90, -99, 82, 90, 78, 11, 69, 57, 9, 54, 48, 100, -7, -58, -84, -165, -139, 18, -28, -17, 24, -38, -135, -221, -218, -151, --45, 47, 70, 17, -11, -52, -70, -27, 33, 116, 189, 207, 117, 106, 97, 37, 134, 141, 16, 31, 351, 241, 41, -69, -160, -90, 115, -113, 21, -76, -285, -272, -181, -7, 89, 118, 82, 85, 84, 91, 122, 114, 89, 54, 26, 72, 4, 84, 314, 164, -60, 32, -113, -137, 17, 273, -599, -251, -111, 44, 69, 105, 45, -127, -148, -70, 187, 47, 7, 39, 97, 125, 87, 24, -7, -27, 26, 32, 45, 26, 52, 62, 162, 169, 81, 54, 63, 88, 109, 163, 276, -423, 396, 410, 324, 240, 155, 186, 74, -137, --186, -163, 5, -2, 71, 115, 101, 48, -28, -32, -43, -39, -25, -5, 14, -6, 38, 73, 42, 36, 34, 81, 86, 60, 106, -101, 148, 313, -175, -136, -61, 29, 92, 193, 255, 259, 196, 132, 146, 14, -45, -31, 43, 72, 67, 58, 39, 39, 12, -6, --19, -29, -21, -14, 34, 60, 38, 38, 17, -6, -25, -5, -39, -120, -60, 8, -15, -28, -9, -38, -83, -156, -77, -49, -37, -6, 26, 29, 13, 10, 7, 27, 31, 15, 4, 3, 18, -9, -28, -70, -70, -77, -74, -54, -63, -73, -82, -103, -114, -81, --88, -73, -50, -35, -11, -22, -8, 9, -26, -36, -20, 2, 24, 50, 8, -9, -21, 1, 16, 26, 33, 33, 46, -17, -64, --118, -133, -148, -165, -190, -227, -264, -279, -264, -235, -129, -80, -66, -69, -86, -97, -108, -126, -137, -106, -71, -41, -33, -23, -4, --2, 4, 6, 18, 27, 44, 43, 45, 57, -16, -70, -147, -152, -180, -196, -175, -149, -130, -106, -80, -59, -70, -146, -116, -102, --89, -74, -57, -38, -26, -21, -24, -23, -19, -14, -8, -8, -7, -7, -5, -7, -4, 4, -27, -39, -52, -56, -72, -77, -85, --93, -107, -120, -139, -138, -143, -146, -134, -65, -66, -64, -59, -56, -54, -52, -46, -46, -43, -40, -37, -35, -32, -32, -32, -31, --31, -29, -32, -26, -26, -22, -44, -41, -37, -42, -46, -50, -54, -58, -61, -62, -64, -64, -65, -51, -18, 0, 2, -15, -24, --26, -31, -28, -11, -20, -21, -19, -24, -28, -39, -34, -29, -20, -11, -8, -12, -15, -17, -19, -22, -14, 6, 3, 5, 3, -6, 4, -11, -2, -6, -11, -1, 10, 13, -22, -39, -45, -60, -53, -12, -27, -22, -14, -20, -40, -75, -73, -61, -35, -5, -5, -7, -16, -33, -40, -34, -16, 31, 21, 26, 29, 26, 19, -11, 26, 22, -23, -1, 64, 83, -13, -59, -57, -99, -86, -8, -38, -32, -25, -45, -74, -132, -120, -92, -41, 14, 33, 11, -13, -38, -53, -48, -12, 68, 63, 73, 73, 86, 74, -2, -59, 47, -13, 44, 38, 76, -28, -66, -72, -148, -130, 9, -39, -19, 24, 14, -71, -187, -204, -165, -77, 22, 54, 13, -26, --65, -78, -48, 14, 116, 172, 189, 114, 111, 103, 36, 142, 134, -22, 10, 357, 217, 28, -99, -210, 19, 63, -113, 26, -52, --254, -255, -190, -74, 52, 96, 59, 71, 76, 88, 108, 94, 67, 51, 20, 46, -5, 82, 306, 128, 23, -3, -168, -160, 55, -302, -571, -270, -184, 3, 134, 114, 42, -99, -164, -95, 194, 43, -3, 27, 79, 99, 44, 9, -12, 11, 34, 48, 50, 17, -44, 72, 156, 152, 61, 51, 57, 84, 142, 175, 186, -423, 425, 421, 310, 212, 96, 261, 180, -161, -150, -151, -65, 7, 95, -138, 128, 74, -29, -24, -31, -45, -34, -8, 11, 14, 46, 54, 32, 29, 32, 86, 103, 109, 86, 52, 123, 328, -215, -161, --111, -14, 77, 138, 185, 162, 221, 187, 145, 62, 2, 7, 49, 74, 58, 42, 16, 18, 12, -5, -38, -42, -29, -19, 7, -31, 25, 14, -2, 2, -23, -4, -17, -144, 6, 76, 15, -22, -11, -37, -41, -55, -28, -33, -49, 2, 22, 19, 17, 20, -26, 44, 40, 13, 3, 2, 26, -20, -44, -59, -79, -81, -62, -38, -35, -33, -27, -37, -43, -12, -107, -69, -38, -15, -1, -3, 8, 12, -19, -17, 3, 20, 35, 52, 2, -10, -3, 12, 25, 28, 41, 31, 19, -42, -79, -116, -119, -134, -160, -186, --218, -243, -277, -274, -246, -155, -46, -32, -36, -46, -51, -63, -78, -91, -70, -50, -30, -32, -32, -27, -16, -4, 4, 13, 21, -33, 26, 24, 31, -36, -95, -167, -174, -187, -201, -182, -169, -156, -114, -73, -38, -45, -106, -82, -78, -73, -68, -60, -50, -46, --40, -40, -38, -34, -29, -26, -27, -30, -32, -33, -36, -36, -33, -52, -60, -66, -64, -72, -70, -75, -79, -86, -92, -108, -104, --112, -113, -101, -67, -67, -67, -65, -64, -63, -63, -62, -61, -59, -56, -53, -51, -47, -49, -49, -49, -49, -49, -51, -48, -48, --44, -61, -59, -57, -60, -63, -64, -66, -68, -67, -66, -66, -65, -66, -74, -20, -5, -5, -19, -26, -27, -32, -29, -13, -22, --22, -20, -20, -24, -36, -34, -31, -24, -16, -13, -14, -19, -22, -26, -25, -19, 0, -7, -5, -3, 0, -3, -18, -7, -11, --21, -7, 3, 1, -27, -41, -44, -57, -52, -16, -30, -22, -13, -4, -21, -63, -68, -63, -42, -16, -5, -10, -23, -37, -44, --39, -22, 27, 9, 13, 27, 22, 17, -12, 20, 13, -37, -8, 52, 56, -24, -62, -56, -94, -81, 3, -37, -27, -19, -12, --38, -109, -110, -96, -52, -5, 16, 7, -21, -44, -56, -53, -23, 66, 37, 50, 70, 82, 70, -8, 48, 35, -35, 36, 29, -45, -41, -68, -66, -125, -117, -6, -46, -15, 32, 68, -6, -146, -181, -167, -95, -7, 31, 14, -34, -67, -78, -62, -5, 115, -145, 161, 113, 119, 111, 40, 142, 114, -62, -10, 345, 175, 15, -116, -222, -42, 24, -73, 38, -25, -208, -232, -189, -110, 25, -77, 44, 53, 60, 82, 88, 69, 41, 51, 20, 22, -4, 79, 268, 96, -2, -46, -206, -163, 88, 315, -524, -285, -219, -15, -204, 116, 28, -64, -167, -104, 195, 42, -7, 27, 53, 63, 9, 2, -8, 3, 35, 55, 48, 12, 40, 81, 141, 127, 42, -37, 47, 97, 181, 176, 55, -411, 402, 404, 268, 141, 7, 255, 235, -112, -74, -108, -107, 20, 117, 158, 139, 85, -25, -20, --21, -38, -37, -11, 7, 33, 53, 33, 21, 22, 26, 90, 116, 142, 44, -13, 83, 306, -223, -179, -143, -46, 48, 69, 89, -60, 216, 221, 146, 103, 47, 47, 48, 64, 42, 24, -5, -11, 3, -10, -53, -56, -39, -20, -18, 0, 8, -7, -16, 6, --16, -3, -9, -153, 60, 124, 70, 25, 16, -3, 22, 54, 16, -19, -56, -12, 10, 7, 16, 28, 40, 51, 43, 12, 6, -3, 23, -25, -52, -53, -81, -72, -35, -20, -12, 2, 16, 19, 23, 43, -131, -76, -50, -24, -20, 3, 6, 6, -9, 2, -15, 34, 40, 44, 6, -5, 21, 23, 31, 32, 47, 27, -14, -62, -86, -103, -102, -120, -150, -176, -201, -213, -266, -275, -253, --184, -27, -9, -10, -11, -8, -17, -28, -39, -27, -19, -9, -15, -22, -25, -9, 6, 15, 19, 26, 33, 14, 6, 4, -48, --103, -163, -176, -179, -195, -178, -175, -168, -120, -75, -37, -35, -80, -65, -64, -63, -62, -59, -53, -52, -45, -43, -40, -36, -29, --26, -29, -33, -36, -37, -40, -40, -48, -55, -63, -67, -63, -63, -58, -58, -60, -62, -62, -72, -72, -82, -84, -76, -64, -58, --61, -60, -60, -60, -61, -61, -60, -59, -56, -54, -52, -49, -51, -51, -51, -52, -52, -52, -57, -60, -63, -64, -69, -74, -74, --75, -73, -73, -73, -70, -65, -61, -68, -65, -76, -20, -8, -9, -20, -25, -26, -30, -28, -15, -21, -20, -18, -15, -18, -32, --32, -31, -26, -19, -16, -14, -21, -24, -29, -26, -21, -3, -13, -11, -4, -4, -6, -20, -11, -12, -26, -10, -2, -8, -28, --39, -39, -51, -48, -21, -31, -20, -7, 12, -3, -50, -61, -62, -45, -26, -14, -11, -25, -37, -47, -40, -25, 24, 0, 5, -28, 21, 17, -8, 16, 5, -44, -11, 41, 30, -28, -59, -51, -83, -73, -8, -35, -17, -6, 19, -6, -86, -97, -96, -59, --24, -2, 3, -25, -46, -60, -53, -29, 65, 18, 34, 73, 80, 66, -6, 37, 25, -47, 31, 19, 14, -42, -61, -54, -99, --106, -29, -52, -8, 45, 113, 50, -109, -156, -164, -106, -37, 5, 15, -33, -63, -77, -69, -20, 114, 116, 131, 118, 129, 120, -49, 137, 90, -89, -19, 311, 126, 1, -120, -212, -88, -2, -16, 50, 3, -142, -209, -187, -122, 1, 55, 34, 34, 36, 64, -61, 44, 17, 54, 25, -3, 5, 78, 208, 70, -16, -85, -224, -150, 115, 308, -470, -271, -225, -17, 278, 120, 20, -12, -151, --100, 174, 47, -1, 17, 22, 20, -22, -5, -2, 6, 29, 51, 43, 12, 42, 89, 121, 97, 21, 14, 35, 119, 222, 168, --83, -393, 341, 390, 206, 38, -95, 143, 195, -11, 4, -57, -113, 31, 122, 156, 140, 91, -12, -21, -22, -27, -31, -11, 3, -47, 57, 15, 9, 14, 18, 93, 120, 147, -11, -80, 37, 248, -206, -196, -156, -65, 12, 4, 5, -3, 193, 234, 138, 138, -94, 75, 40, 46, 26, 4, -23, -40, -16, -22, -61, -68, -49, -18, -37, -25, -5, -19, -18, 12, 0, 5, -14, -140, 98, -153, 135, 102, 78, 54, 86, 145, 59, 1, -56, -35, -16, -3, 13, 28, 41, 50, 44, 13, 13, 5, 10, -27, -55, -54, --73, -53, -4, -4, 4, 22, 40, 53, 60, 75, -156, -96, -82, -55, -46, -13, -4, 4, 3, 21, 35, 51, 44, 33, 10, -6, 41, 34, 36, 36, 45, 17, -41, -77, -89, -85, -87, -107, -135, -161, -180, -181, -244, -262, -250, -205, -21, 3, 4, 10, -18, 14, 13, 9, 13, 13, 17, 8, 0, -7, 11, 24, 35, 35, 41, 44, 11, -8, -24, -55, -100, -140, -161, -161, -182, --168, -172, -171, -127, -88, -57, -41, -63, -49, -50, -51, -52, -51, -50, -50, -45, -40, -36, -32, -26, -23, -25, -29, -31, -31, --33, -31, -46, -46, -54, -59, -57, -55, -48, -46, -47, -45, -44, -49, -51, -59, -60, -55, -49, -37, -41, -42, -43, -44, -46, --47, -46, -45, -43, -42, -41, -38, -39, -39, -40, -40, -40, -38, -49, -55, -64, -52, -62, -74, -72, -72, -68, -68, -66, -63, --56, -47, -62, -54, -55, -19, -8, -11, -19, -23, -23, -27, -25, -16, -19, -17, -13, -9, -12, -26, -28, -29, -25, -20, -17, --14, -21, -24, -29, -24, -19, -3, -15, -13, -1, -4, -6, -17, -11, -11, -26, -9, -4, -12, -25, -34, -32, -43, -44, -26, --30, -15, 2, 22, 10, -37, -53, -59, -47, -32, -21, -13, -26, -37, -49, -38, -23, 22, -4, 2, 32, 20, 17, 0, 14, -2, -42, -10, 33, 13, -26, -51, -42, -72, -65, -23, -30, -5, 10, 41, 18, -66, -84, -92, -65, -38, -18, -2, -29, -48, --64, -50, -30, 63, 7, 25, 81, 77, 63, 2, 30, 20, -48, 30, 17, -2, -35, -49, -38, -75, -96, -56, -54, 2, 61, -141, 90, -74, -130, -155, -116, -64, -23, 9, -31, -60, -76, -71, -29, 113, 91, 104, 131, 140, 125, 61, 127, 69, -97, -18, -260, 77, -12, -115, -187, -118, -18, 41, 64, 31, -67, -188, -186, -119, -20, 31, 27, 19, 15, 37, 30, 18, -5, 57, 32, --25, 21, 81, 139, 51, -22, -110, -219, -121, 139, 286, -402, -223, -209, -10, 340, 134, 25, 46, -127, -95, 132, 49, 10, 1, --5, -12, -36, -11, -2, 9, 17, 37, 37, 16, 47, 92, 101, 67, -3, -8, 30, 146, 252, 144, -203, -364, 256, 385, 143, --65, -195, -38, 91, 131, 64, -20, -89, 35, 110, 135, 127, 88, 9, -19, -24, -12, -16, -4, 2, 56, 55, 5, -3, 4, -11, 92, 115, 124, -60, -129, -6, 160, -170, -204, -155, -74, -19, -44, -50, -11, 158, 221, 134, 166, 138, 97, 34, 20, 8, --17, -39, -60, -38, -38, -65, -73, -56, -19, -47, -40, -14, -24, -11, 16, 20, 15, -19, -108, 120, 166, 190, 181, 156, 117, -135, 194, 101, 36, -39, -46, -41, -18, 10, 25, 34, 44, 41, 16, 18, 4, -10, -32, -55, -55, -57, -27, 21, 8, 12, -27, 44, 64, 77, 90, -177, -110, -111, -87, -68, -29, -10, 9, 19, 40, 54, 62, 50, 30, 19, 23, 51, 43, 41, 39, -33, 1, -59, -83, -87, -71, -76, -96, -116, -142, -155, -148, -208, -233, -239, -218, -26, 1, 4, 15, 25, 28, 35, 42, 42, -40, 42, 31, 25, 18, 30, 38, 48, 46, 48, 53, 13, -17, -46, -58, -87, -106, -133, -137, -164, -155, -165, -170, -135, -104, --81, -53, -46, -34, -37, -39, -40, -42, -44, -47, -42, -37, -32, -27, -21, -18, -19, -21, -21, -20, -21, -17, -35, -32, -40, --46, -48, -46, -41, -38, -40, -38, -37, -39, -40, -44, -43, -40, -26, -13, -18, -20, -23, -25, -26, -29, -27, -26, -25, -24, --23, -21, -22, -21, -21, -21, -21, -18, -30, -36, -47, -32, -42, -56, -55, -54, -50, -50, -48, -46, -38, -28, -43, -32, -26, --15, -7, -10, -16, -19, -19, -23, -22, -17, -15, -12, -8, -5, -7, -19, -23, -25, -23, -19, -17, -13, -20, -23, -29, -21, --17, -3, -15, -13, 1, -4, -7, -14, -10, -9, -23, -8, -2, -10, -18, -26, -25, -36, -39, -30, -26, -9, 9, 29, 19, --22, -43, -54, -46, -36, -27, -16, -28, -37, -50, -34, -20, 18, -5, 1, 35, 20, 17, 8, 14, 2, -33, -5, 27, 4, --19, -39, -34, -63, -59, -35, -22, 7, 22, 54, 34, -42, -68, -84, -68, -49, -32, -10, -35, -52, -70, -44, -27, 59, 3, -22, 90, 71, 58, 12, 27, 20, -41, 30, 23, -2, -18, -31, -23, -58, -90, -77, -49, 13, 70, 149, 115, -32, -102, -141, --121, -87, -50, -7, -37, -61, -80, -66, -31, 109, 71, 84, 146, 149, 127, 73, 117, 54, -89, -7, 194, 25, -25, -107, -162, --142, -34, 83, 77, 59, 4, -167, -186, -117, -33, 17, 26, 16, 5, 15, 3, -3, -18, 57, 38, -40, 44, 90, 77, 36, --27, -120, -197, -86, 154, 247, -322, -152, -180, 3, 381, 159, 44, 87, -109, -93, 86, 63, 33, -14, -28, -38, -39, -18, -11, -0, -1, 17, 33, 19, 52, 88, 79, 37, -28, -22, 33, 168, 251, 102, -271, -321, 163, 384, 90, -147, -283, -216, -25, 275, -101, 0, -44, 35, 89, 112, 107, 79, 33, -12, -20, 6, 4, 8, 6, 58, 47, 1, -14, -5, 8, 87, 96, 80, -87, --144, -35, 62, -125, -205, -148, -78, -43, -62, -66, 19, 119, 190, 141, 183, 165, 111, 36, -4, -15, -40, -55, -68, -57, -53, --66, -72, -56, -20, -48, -45, -19, -25, -2, 14, 33, 22, -20, -66, 121, 147, 217, 235, 213, 165, 162, 202, 129, 71, -5, --34, -47, -34, 2, 21, 32, 38, 35, 20, 18, -2, -28, -39, -55, -55, -34, 3, 36, 15, 13, 21, 42, 67, 85, 90, --186, -115, -119, -97, -76, -33, -7, 16, 30, 48, 62, 61, 53, 34, 33, 40, 54, 48, 42, 39, 16, -19, -72, -79, -78, --64, -69, -86, -95, -117, -125, -112, -158, -190, -220, -219, -37, -9, -5, 8, 16, 25, 39, 55, 56, 55, 56, 47, 44, 40, -45, 47, 50, 46, 42, 46, 10, -24, -57, -57, -71, -73, -104, -113, -143, -143, -157, -169, -144, -120, -104, -67, -32, -21, -25, --27, -28, -31, -36, -41, -38, -33, -26, -19, -13, -10, -9, -8, -6, -4, -2, 2, -18, -16, -23, -30, -37, -37, -34, -32, --35, -33, -34, -36, -34, -34, -31, -29, -7, 3, -2, -5, -9, -11, -13, -16, -12, -11, -11, -10, -10, -8, -7, -7, -6, --5, -5, -1, -11, -15, -25, -13, -21, -33, -33, -33, -30, -31, -29, -29, -21, -14, -22, -13, -5, -12, -6, -9, -12, -15, --16, -20, -19, -16, -12, -8, -4, -1, -4, -13, -19, -22, -21, -18, -16, -12, -19, -21, -28, -17, -13, -3, -13, -10, 4, --3, -6, -9, -7, -6, -18, -6, 2, -5, -10, -17, -18, -32, -37, -32, -21, -4, 13, 30, 24, -7, -33, -47, -44, -39, --32, -21, -31, -38, -51, -28, -15, 13, -4, 2, 35, 18, 16, 14, 15, 5, -21, 2, 23, 0, -10, -27, -28, -59, -57, --43, -15, 17, 27, 57, 42, -16, -52, -74, -66, -57, -44, -20, -42, -55, -75, -35, -19, 50, 4, 22, 94, 63, 52, 22, -27, 23, -28, 30, 37, 10, 6, -8, -8, -50, -89, -88, -39, 20, 68, 143, 131, 15, -73, -125, -121, -106, -78, -30, -49, --67, -88, -57, -26, 102, 57, 70, 159, 154, 128, 86, 109, 49, -67, 11, 116, -27, -44, -107, -155, -161, -50, 102, 83, 79, -64, -141, -181, -119, -37, 12, 26, 21, 5, 0, -16, -15, -19, 53, 41, -47, 70, 103, 31, 21, -38, -122, -165, -50, 156, -186, -234, -78, -141, 22, 392, 187, 73, 112, -89, -89, 43, 91, 70, -32, -46, -61, -43, -30, -27, -22, -26, -7, 30, 20, -52, 78, 57, 9, -51, -27, 42, 172, 219, 52, -289, -268, 76, 358, 23, -209, -335, -344, -120, 354, 115, 17, 10, 28, 59, -88, 92, 74, 54, 1, -8, 24, 20, 19, 13, 53, 35, 2, -22, -13, 10, 74, 66, 26, -90, -131, -41, -29, -84, -191, --128, -68, -55, -47, -45, 56, 82, 155, 158, 188, 173, 118, 40, -22, -40, -62, -70, -71, -72, -66, -65, -65, -51, -22, -41, --43, -24, -27, 4, 11, 32, 21, -9, -25, 98, 90, 198, 243, 228, 191, 173, 190, 140, 98, 42, -7, -35, -38, -3, 21, -34, 34, 31, 25, 15, -9, -43, -50, -56, -53, -9, 29, 43, 18, 12, 15, 45, 72, 81, 75, -167, -113, -99, -76, -59, --22, 2, 23, 36, 48, 60, 50, 48, 36, 43, 46, 49, 46, 36, 29, -4, -39, -80, -69, -65, -63, -67, -78, -72, -86, --87, -75, -104, -139, -188, -190, -53, -22, -18, -8, -2, 9, 27, 48, 55, 58, 61, 56, 54, 53, 52, 49, 47, 39, 30, -29, 3, -26, -57, -53, -58, -54, -80, -93, -122, -129, -148, -164, -149, -135, -126, -84, -20, -13, -16, -16, -15, -17, -23, -29, --28, -24, -18, -11, -5, 0, 3, 6, 9, 12, 16, 20, 3, 0, -8, -15, -25, -30, -30, -29, -32, -31, -33, -35, -31, --26, -23, -21, 0, 5, 1, -1, -5, -7, -8, -9, -6, -5, -5, -5, -4, -3, -2, -1, 0, 1, 2, 5, 0, -2, --7, -5, -8, -15, -16, -17, -16, -17, -17, -19, -14, -10, -8, -3, -1, -9, -4, -7, -8, -11, -13, -17, -17, -15, -8, --4, -1, 1, -1, -6, -14, -17, -18, -16, -15, -11, -16, -18, -26, -12, -9, -3, -10, -8, 5, -2, -5, -5, -5, -3, --12, -3, 9, 1, 1, -6, -12, -28, -35, -30, -15, 2, 14, 31, 29, 8, -22, -39, -41, -40, -35, -25, -32, -36, -49, --20, -8, 8, -1, 3, 32, 15, 15, 21, 16, 8, -7, 10, 23, 0, 2, -14, -22, -58, -58, -46, -6, 26, 28, 57, -47, 12, -35, -61, -62, -61, -53, -30, -46, -55, -75, -22, -10, 39, 8, 23, 89, 50, 43, 32, 26, 27, -10, 32, 54, -25, 35, 20, 7, -45, -88, -89, -27, 27, 60, 131, 142, 65, -41, -104, -116, -118, -99, -53, -62, -73, -95, -44, -15, 91, -48, 62, 166, 155, 126, 100, 102, 48, -36, 33, 41, -69, -66, -113, -163, -175, -68, 104, 82, 88, 111, -110, -171, -128, -38, -12, 26, 31, 14, -6, -23, -17, -6, 48, 39, -49, 95, 116, 1, 5, -54, -121, -128, -14, 150, 119, -149, -13, -85, 50, -370, 214, 109, 118, -69, -79, 10, 116, 106, -40, -54, -70, -42, -36, -40, -46, -48, -28, 26, 20, 50, 67, 35, -17, -69, --20, 55, 157, 171, 0, -287, -218, -2, 257, -80, -261, -329, -416, -195, 351, 123, 46, 57, 23, 31, 65, 84, 78, 72, 21, -7, 36, 30, 25, 18, 43, 22, 3, -28, -18, 16, 53, 27, -27, -76, -99, -32, -93, -49, -145, -81, -33, -33, -5, -5, -75, 56, 128, 175, 182, 168, 117, 43, -29, -57, -76, -80, -71, -81, -75, -65, -55, -41, -24, -28, -34, -29, -28, 7, 8, -23, 17, 14, 5, 54, 17, 134, 197, 202, 191, 177, 183, 154, 122, 92, 29, -8, -23, 1, 23, 36, 32, 29, 30, 12, --19, -56, -61, -57, -47, 10, 46, 43, 22, 16, 17, 54, 76, 65, 48, -128, -99, -58, -30, -17, 3, 16, 30, 40, 44, -52, 37, 37, 36, 46, 45, 40, 39, 23, 10, -27, -57, -78, -59, -54, -63, -66, -69, -48, -51, -47, -36, -51, -83, -139, --138, -69, -37, -36, -30, -25, -10, 10, 33, 45, 53, 61, 57, 54, 52, 49, 46, 44, 32, 17, 11, -4, -25, -50, -49, --51, -49, -66, -78, -101, -115, -135, -155, -150, -146, -146, -102, -12, -6, -7, -4, -1, -2, -7, -11, -12, -10, -5, 0, 5, -10, 12, 14, 18, 20, 24, 28, 16, 8, 0, -7, -19, -28, -30, -31, -33, -34, -37, -39, -31, -22, -18, -16, -4, -4, --5, -7, -9, -9, -8, -8, -5, -5, -6, -6, -6, -5, -4, -3, -2, -1, 0, 3, 1, 1, 0, -7, -7, -9, -10, --13, -14, -16, -16, -19, -17, -17, -7, -6, -9, -5, -1, -4, -4, -6, -9, -14, -14, -12, -4, 0, 1, 4, 3, 2, --8, -12, -14, -13, -13, -10, -14, -15, -23, -6, -5, -4, -7, -5, 4, -3, -4, -1, -3, 0, -6, -1, 15, 7, 12, -5, -4, -25, -33, -27, -9, 6, 14, 31, 33, 24, -9, -28, -37, -38, -36, -28, -33, -33, -43, -12, -1, 4, 2, 4, -25, 11, 12, 25, 16, 11, 4, 16, 24, 0, 13, -2, -15, -56, -57, -45, 2, 32, 26, 55, 51, 41, -16, -46, -58, --60, -57, -38, -48, -50, -68, -8, 1, 28, 14, 23, 73, 34, 32, 38, 23, 29, 6, 33, 67, 37, 63, 49, 25, -41, --85, -84, -15, 31, 47, 117, 150, 115, -6, -79, -110, -121, -112, -72, -72, -75, -97, -27, 0, 79, 44, 57, 164, 148, 120, -112, 91, 47, -7, 51, -16, -97, -91, -126, -175, -180, -80, 100, 81, 94, 144, -81, -162, -137, -42, 13, 31, 44, 28, -3, --19, -8, 16, 41, 35, -48, 115, 127, -13, -11, -74, -120, -91, 16, 134, 64, -86, 37, -13, 86, 321, 230, 144, 110, -52, --71, -11, 134, 139, -29, -53, -75, -39, -38, -46, -65, -59, -40, 19, 16, 43, 56, 15, -39, -79, -3, 71, 133, 114, -53, --273, -181, -58, 99, -190, -300, -286, -424, -248, 244, 128, 93, 88, 27, 13, 41, 77, 83, 84, 43, 24, 36, 33, 25, 22, -29, 7, 2, -30, -18, 24, 28, -10, -68, -53, -60, -26, -113, -13, -73, -18, 14, 12, 39, 32, 75, 35, 97, 171, 166, -154, 115, 43, -27, -64, -81, -83, -70, -84, -79, -66, -44, -28, -25, -15, -24, -33, -27, 7, 6, 13, 17, 43, 27, 5, --50, 43, 106, 136, 166, 175, 181, 167, 145, 135, 72, 30, 1, 15, 27, 32, 30, 26, 27, 2, -31, -66, -70, -56, -36, -22, 52, 39, 29, 26, 24, 61, 73, 45, 20, -83, -64, -4, 27, 39, 34, 30, 33, 37, 37, 38, 21, 25, 33, 43, -42, 29, 28, 9, -12, -47, -68, -69, -53, -49, -63, -63, -56, -24, -16, -7, 2, -2, -25, -73, -76, -83, -57, -54, -47, --39, -22, 0, 21, 34, 43, 50, 47, 44, 41, 38, 38, 40, 23, 4, -6, -11, -26, -44, -46, -48, -49, -59, -69, -85, --103, -123, -144, -146, -151, -158, -116, -9, -5, -3, 4, 8, 8, 6, 4, 3, 5, 9, 13, 17, 20, 20, 19, 20, 20, -23, 24, 19, 7, -1, -9, -20, -31, -35, -37, -38, -41, -44, -46, -35, -23, -17, -16, -15, -17, -16, -17, -16, -15, -12, --9, -8, -9, -10, -10, -10, -10, -9, -9, -9, -7, -7, -5, -5, -6, -5, -16, -15, -15, -16, -19, -21, -23, -24, -28, --28, -29, -16, -16, -22, -3, 1, -3, -1, -3, -6, -12, -13, -10, -1, 3, 1, 5, 5, 8, -3, -8, -12, -11, -11, --9, -11, -11, -17, -2, -1, -3, -3, -2, 2, -3, -4, 3, -1, 1, 0, 2, 19, 12, 21, 14, 3, -22, -30, -23, --4, 8, 10, 28, 34, 38, 3, -18, -33, -36, -36, -30, -32, -29, -35, -3, 6, 1, 5, 5, 15, 5, 8, 26, 14, -11, 13, 19, 24, 1, 21, 9, -6, -51, -54, -42, 8, 35, 20, 49, 51, 65, 2, -30, -53, -57, -58, -43, -47, -43, --56, 7, 12, 20, 20, 21, 50, 16, 17, 39, 17, 27, 20, 32, 73, 47, 85, 73, 45, -32, -76, -76, -4, 32, 29, -99, 149, 157, 29, -53, -103, -120, -119, -86, -78, -73, -90, -7, 18, 68, 45, 54, 148, 133, 109, 116, 78, 44, 20, 62, --55, -114, -115, -142, -180, -179, -89, 98, 80, 99, 166, -55, -151, -141, -52, 10, 40, 61, 48, 6, -6, 10, 39, 34, 29, --44, 125, 133, -17, -25, -92, -120, -58, 39, 112, 23, -37, 74, 58, 114, 249, 232, 172, 101, -36, -65, -23, 143, 164, -5, --46, -75, -44, -39, -46, -76, -57, -43, 7, 8, 32, 47, -3, -56, -80, 17, 84, 103, 52, -104, -256, -153, -87, -84, -285, --314, -236, -366, -260, 73, 134, 148, 91, 29, -1, 20, 65, 83, 85, 59, 34, 20, 26, 21, 25, 16, -7, -3, -28, -12, -28, 5, -39, -95, -28, -20, -27, -93, 26, 15, 53, 60, 55, 65, 53, 55, 10, 54, 145, 144, 138, 114, 43, -21, -66, --79, -83, -72, -82, -81, -66, -34, -16, -23, -5, -15, -34, -24, 6, 6, 3, 18, 71, 44, -36, -106, -53, 1, 47, 132, -169, 168, 171, 160, 166, 109, 68, 29, 31, 33, 25, 27, 19, 15, -13, -46, -71, -76, -54, -21, 26, 50, 34, 37, 37, -31, 62, 63, 27, -2, -32, -12, 54, 81, 90, 64, 43, 35, 30, 23, 17, 4, 12, 25, 38, 36, 18, 16, -5, -32, --59, -71, -58, -50, -50, -63, -56, -40, -2, 15, 30, 37, 45, 32, -2, -15, -94, -76, -67, -56, -38, -22, -4, 12, 21, -27, 31, 30, 27, 26, 23, 26, 31, 10, -11, -25, -23, -33, -43, -46, -47, -51, -56, -65, -76, -95, -112, -131, -138, -149, --159, -122, -11, -9, -4, 4, 8, 10, 12, 16, 16, 18, 21, 22, 24, 26, 24, 19, 17, 14, 14, 12, 12, -1, -8, --16, -26, -38, -42, -45, -46, -50, -54, -55, -44, -30, -23, -21, -29, -32, -29, -28, -25, -21, -16, -11, -13, -13, -15, -15, --15, -15, -16, -16, -16, -16, -15, -16, -15, -15, -13, -26, -25, -24, -25, -28, -32, -34, -35, -40, -41, -42, -28, -29, -35, --1, 2, -2, 2, 0, -3, -10, -10, -9, 1, 5, 1, 5, 6, 13, 1, -3, -9, -9, -9, -9, -9, -8, -12, 2, -2, -3, -1, -1, -2, -5, -5, 4, -1, 2, 4, 3, 21, 14, 26, 21, 10, -16, -25, -20, 0, 10, 6, 24, 35, -49, 14, -7, -27, -33, -35, -31, -31, -25, -25, 4, 12, 0, 7, 4, 3, -2, 2, 25, 10, 9, 19, 20, 22, 0, -26, 18, 3, -41, -46, -39, 16, 37, 13, 43, 49, 85, 19, -14, -46, -51, -56, -46, -45, -35, -39, 21, 22, 13, 24, -16, 21, -4, 1, 35, 9, 23, 32, 29, 74, 49, 98, 92, 61, -16, -59, -68, 8, 33, 10, 80, 143, 189, 64, -22, --90, -114, -122, -97, -83, -68, -74, 14, 37, 59, 49, 52, 117, 111, 93, 112, 61, 37, 42, 66, -84, -120, -132, -152, -174, --169, -90, 100, 80, 103, 183, -25, -135, -144, -68, 1, 47, 79, 77, 31, 17, 34, 61, 25, 19, -35, 124, 131, -12, -33, --102, -120, -31, 53, 93, -12, 9, 100, 113, 125, 165, 223, 194, 92, -21, -62, -36, 136, 176, 32, -31, -69, -46, -40, -41, --77, -46, -38, -7, -2, 19, 38, -20, -70, -75, 31, 87, 71, -8, -146, -243, -121, -105, -273, -357, -305, -192, -283, -240, -80, -153, 204, 73, 28, -9, 5, 51, 75, 77, 67, 38, -2, 12, 14, 28, 5, -18, -12, -21, -2, 28, -12, -58, -107, -2, -20, -37, -57, 71, 114, 131, 105, 81, 71, 54, 22, -22, 5, 106, 119, 121, 112, 47, -7, -62, -73, -79, -75, -79, -80, --64, -26, -6, -18, 0, -10, -33, -17, 5, 10, -4, 17, 90, 60, -69, -145, -131, -87, -27, 102, 161, 151, 168, 166, 185, -134, 99, 63, 45, 36, 21, 23, 8, -5, -31, -61, -74, -78, -50, -4, 25, 41, 29, 44, 45, 39, 56, 50, 16, -17, -23, 42, 104, 124, 126, 84, 52, 37, 24, 11, 1, -7, -1, 12, 29, 28, 9, 5, -17, -45, -62, -68, -48, -50, -53, --63, -47, -22, 18, 42, 61, 67, 82, 79, 56, 41, -99, -87, -72, -54, -26, -13, -1, 5, 7, 10, 9, 11, 11, 12, -9, 11, 17, -4, -25, -42, -38, -44, -51, -52, -51, -57, -57, -65, -72, -87, -100, -114, -124, -139, -149, -120, -21, -19, -10, --2, 2, 6, 13, 23, 24, 25, 27, 26, 26, 26, 20, 13, 8, 3, 1, -4, 0, -13, -19, -27, -35, -46, -51, -55, --56, -61, -65, -68, -56, -42, -35, -32, -41, -45, -40, -37, -32, -26, -20, -14, -17, -18, -19, -20, -20, -19, -21, -22, -24, --24, -24, -27, -25, -26, -24, -36, -36, -34, -36, -39, -43, -45, -47, -53, -52, -54, -40, -42, -45, 1, 2, 0, 4, 3, -1, -6, -7, -7, 4, 7, 1, 6, 8, 17, 6, 1, -6, -6, -7, -7, -7, -5, -8, 6, 4, -2, 1, -1, -7, --7, -6, 4, -2, 1, 6, 4, 20, 14, 30, 27, 17, -8, -17, -16, 6, 13, 2, 22, 36, 57, 26, 4, -20, -27, --33, -31, -30, -21, -14, 11, 17, -1, 9, 3, -9, -10, -5, 22, 4, 6, 23, 19, 17, -1, 29, 26, 15, -27, -33, --36, 24, 41, 7, 39, 48, 98, 36, 4, -36, -42, -50, -46, -42, -27, -19, 31, 30, 9, 26, 10, -9, -24, -17, 28, --3, 15, 41, 25, 66, 45, 103, 105, 79, 5, -36, -61, 20, 36, -5, 66, 137, 210, 98, 10, -72, -102, -119, -106, -87, --59, -50, 34, 52, 51, 55, 49, 76, 82, 71, 100, 39, 25, 61, 64, -106, -117, -143, -154, -160, -151, -83, 100, 80, 109, -195, 4, -118, -146, -90, -14, 53, 96, 109, 71, 48, 58, 75, 15, 8, -22, 111, 120, -6, -33, -102, -113, -12, 57, 75, --42, 54, 115, 145, 115, 88, 210, 210, 89, -5, -61, -58, 112, 173, 81, -12, -60, -43, -38, -33, -67, -28, -26, -20, -13, -6, 31, -34, -77, -65, 36, 79, 40, -54, -173, -229, -81, -126, -442, -397, -276, -161, -215, -215, -194, 169, 245, 47, 23, -17, --8, 34, 63, 63, 64, 36, -18, 0, 10, 31, -1, -25, -22, -12, 10, 23, -24, -66, -107, 23, 52, -59, -27, 125, 212, -199, 133, 86, 59, 40, -6, -45, -34, 59, 90, 105, 110, 52, 7, -50, -63, -72, -76, -76, -77, -59, -21, 0, -11, 0, --9, -29, -8, 7, 15, -5, 18, 94, 79, -92, -162, -182, -145, -71, 71, 139, 131, 161, 166, 185, 146, 118, 93, 59, 38, -16, 14, -6, -29, -50, -73, -78, -78, -47, 8, 18, 27, 24, 45, 47, 44, 44, 34, 11, -27, 73, 85, 136, 148, 143, -95, 61, 40, 24, 8, -7, -13, -12, -2, 16, 17, 2, -5, -24, -51, -58, -59, -42, -51, -57, -62, -36, -3, 36, 63, -83, 88, 105, 108, 95, 86, -97, -89, -69, -46, -11, -2, 2, 0, -5, -7, -11, -7, -3, 1, -3, -3, 2, -18, -36, --52, -51, -56, -61, -61, -59, -66, -61, -64, -67, -77, -85, -92, -104, -122, -135, -112, -34, -33, -22, -14, -9, -3, 8, 23, -25, 26, 26, 24, 21, 20, 12, 3, -5, -11, -15, -20, -15, -26, -32, -39, -45, -55, -60, -65, -67, -72, -77, -81, -70, --56, -49, -45, -51, -54, -49, -44, -38, -30, -25, -19, -23, -24, -24, -24, -24, -24, -26, -28, -30, -31, -33, -36, -35, -36, --34, -44, -45, -44, -46, -49, -53, -56, -57, -63, -61, -62, -51, -52, -51, 4, 3, 2, 7, 7, 6, -1, -3, -4, 8, -11, 3, 9, 11, 21, 11, 6, -1, -2, -3, -4, -4, -1, -1, 9, 7, -1, 3, 0, -9, -8, -7, 5, -2, 2, -10, 5, 17, 14, 32, 32, 26, 1, -8, -12, 13, 18, 1, 22, 38, 63, 37, 17, -10, -20, -28, -29, -28, -14, -1, -17, 21, 1, 10, 1, -17, -17, -11, 19, -2, 2, 29, 17, 11, -2, 30, 32, 29, -10, -19, -31, 35, 48, 6, 40, -51, 106, 52, 22, -22, -31, -42, -43, -37, -17, 3, 39, 36, 5, 25, 2, -35, -43, -34, 21, -14, 6, 51, 18, 52, -39, 102, 112, 99, 30, -11, -50, 36, 45, -14, 57, 131, 219, 129, 45, -46, -84, -109, -110, -88, -47, -16, 52, 63, 44, -59, 45, 31, 47, 43, 81, 15, 11, 80, 55, -120, -108, -149, -151, -137, -129, -74, 91, 79, 118, 205, 34, -98, -144, -111, --32, 57, 107, 136, 115, 83, 78, 80, 3, -3, -4, 89, 99, -1, -27, -90, -97, 2, 54, 56, -67, 101, 127, 150, 86, -20, 197, 225, 95, 12, -63, -88, 73, 157, 129, 11, -46, -36, -35, -23, -48, -6, -11, -30, -21, -7, 24, -43, -77, -52, -32, 65, 14, -87, -186, -209, -29, -169, -567, -384, -217, -133, -168, -197, -264, 166, 258, 24, 15, -26, -21, 14, 46, 50, 54, -32, -22, -5, 9, 33, -5, -28, -32, -4, 21, 19, -31, -65, -92, 42, 69, -86, -26, 184, 297, 242, 135, 71, 30, 17, --22, -55, -61, 3, 63, 92, 107, 58, 19, -32, -50, -63, -73, -72, -69, -49, -15, 4, -1, -3, -11, -24, 1, 9, 17, -1, 21, 84, 104, -104, -158, -201, -170, -90, 37, 105, 108, 147, 160, 175, 148, 126, 110, 68, 39, 11, 2, -24, -52, -66, --81, -82, -74, -44, 13, 10, 14, 19, 41, 45, 46, 29, 18, 8, -34, 109, 112, 148, 151, 142, 99, 69, 49, 30, 10, --6, -13, -17, -12, 4, 6, -6, -13, -27, -49, -49, -48, -37, -51, -57, -57, -22, 16, 52, 78, 95, 97, 111, 119, 115, -114, -89, -84, -62, -37, 0, 5, 3, -4, -14, -18, -23, -17, -12, -7, -13, -14, -12, -28, -42, -56, -59, -64, -68, -67, --65, -72, -64, -61, -61, -62, -65, -65, -80, -100, -115, -99, -49, -49, -37, -30, -25, -18, -4, 13, 15, 16, 15, 13, 9, -8, -1, -10, -18, -24, -30, -35, -31, -39, -44, -50, -54, -61, -67, -72, -76, -82, -88, -92, -83, -71, -64, -60, -58, -61, --55, -50, -43, -36, -31, -26, -29, -29, -29, -29, -29, -28, -31, -33, -35, -37, -40, -44, -43, -44, -43, -50, -50, -50, -53, --56, -60, -62, -64, -69, -67, -66, -58, -59, -54, 8, 5, 4, 10, 11, 11, 4, 2, 0, 12, 15, 6, 13, 15, 24, -16, 12, 5, 3, 1, -1, 0, 2, 5, 13, 10, 1, 4, 1, -11, -9, -7, 6, -1, 4, 14, 6, 13, 14, 33, -36, 35, 11, 2, -5, 21, 23, 2, 23, 39, 65, 47, 29, 3, -10, -21, -24, -23, -8, 12, 23, 23, 2, 10, -1, --23, -24, -18, 16, -7, -1, 33, 14, 3, -2, 32, 39, 43, 6, -4, -25, 44, 55, 10, 44, 54, 107, 66, 40, -4, --18, -32, -39, -31, -8, 23, 43, 38, 3, 20, -8, -54, -59, -49, 15, -23, -2, 58, 11, 33, 34, 97, 116, 116, 53, -15, -34, 51, 53, -14, 51, 122, 214, 154, 80, -14, -60, -94, -106, -85, -33, 19, 67, 70, 39, 59, 36, -13, 9, 10, -60, -11, -5, 95, 42, -129, -98, -148, -140, -109, -108, -68, 70, 81, 133, 214, 74, -63, -131, -125, -50, 54, 111, 151, 148, -113, 90, 72, -12, -15, 15, 63, 73, 1, -18, -69, -71, 15, 50, 37, -85, 145, 136, 133, 44, -42, 180, 233, 105, 28, --67, -123, 25, 127, 165, 35, -27, -22, -30, -14, -21, 15, 6, -34, -23, -17, 16, -48, -70, -39, 25, 46, -9, -114, -191, --182, 26, -240, -625, -321, -130, -104, -135, -181, -275, 137, 237, 19, 10, -33, -30, -6, 26, 35, 43, 29, -14, -1, 12, 31, --8, -29, -38, 4, 28, 14, -35, -59, -62, 50, 68, -103, -70, 241, 353, 253, 115, 43, -1, -7, -33, -60, -78, -48, 35, -79, 99, 63, 30, -11, -36, -52, -65, -64, -57, -33, -8, 7, 7, -6, -13, -17, 7, 10, 19, 14, 28, 70, 135, -108, --139, -190, -164, -93, 10, 70, 82, 127, 149, 161, 144, 127, 118, 69, 35, 5, -12, -41, -71, -78, -85, -86, -68, -39, 12, -1, 2, 12, 31, 37, 45, 12, 2, 3, -40, 125, 124, 142, 138, 128, 100, 82, 67, 44, 20, 4, -5, -13, -16, -2, -0, -13, -18, -26, -40, -38, -37, -35, -49, -53, -46, -5, 33, 63, 84, 95, 93, 105, 116, 118, 122, -75, -73, -51, -28, -4, 6, 1, -6, -17, -19, -21, -17, -13, -9, -17, -23, -25, -36, -46, -56, -62, -68, -73, -70, -67, -71, -63, -54, -52, --44, -42, -34, -50, -71, -88, -78, -65, -65, -54, -48, -43, -34, -20, -4, -2, -2, -4, -6, -8, -8, -16, -23, -30, -36, --40, -45, -43, -48, -52, -56, -60, -64, -69, -75, -81, -88, -95, -101, -93, -84, -78, -73, -61, -63, -58, -53, -47, -41, -38, --34, -36, -35, -34, -33, -33, -32, -35, -37, -39, -42, -45, -49, -48, -49, -49, -52, -53, -54, -57, -60, -62, -65, -67, -72, --68, -67, -63, -63, -53, 10, 6, 7, 13, 14, 16, 8, 6, 3, 15, 18, 9, 16, 18, 26, 20, 16, 10, 7, 4, -2, 3, 6, 11, 15, 12, 3, 5, 1, -10, -9, -7, 8, 1, 5, 17, 7, 9, 14, 33, 39, 41, 19, 11, 1, -26, 27, 4, 23, 39, 64, 53, 39, 15, -1, -13, -19, -18, -2, 21, 26, 25, 3, 8, -4, -26, -30, -23, 13, -11, --3, 37, 10, -3, -1, 33, 45, 54, 20, 8, -18, 49, 59, 16, 47, 56, 103, 76, 55, 15, -5, -22, -32, -25, -1, -36, 44, 38, 0, 12, -19, -66, -72, -61, 10, -30, -9, 62, 3, 15, 29, 91, 116, 128, 71, 37, -16, 60, 57, -11, -41, 107, 198, 170, 109, 23, -34, -75, -96, -77, -19, 50, 78, 72, 36, 52, 23, -49, -28, -22, 38, -35, -20, 104, 27, --133, -87, -138, -123, -82, -93, -68, 36, 76, 145, 218, 127, -7, -109, -125, -66, 39, 100, 148, 161, 130, 91, 54, -29, -28, -32, 38, 43, -1, -10, -45, -38, 31, 47, 18, -97, 185, 139, 100, -3, -97, 154, 226, 113, 40, -70, -159, -25, 89, 179, -57, -6, -5, -25, -7, 7, 33, 20, -31, -19, -24, 5, -50, -58, -28, 15, 25, -30, -136, -191, -148, 80, -327, -633, -233, --34, -82, -104, -154, -245, 85, 186, 35, 4, -44, -41, -28, 4, 20, 31, 28, 2, 10, 17, 24, -13, -29, -42, 9, 30, -10, -34, -47, -28, 42, 47, -100, -150, 285, 365, 228, 83, 13, -28, -29, -41, -62, -87, -78, 11, 63, 85, 64, 36, 11, --21, -40, -53, -54, -40, -15, -1, 8, 12, -8, -16, -11, 8, 8, 21, 34, 40, 61, 167, -106, -115, -157, -136, -86, -8, -40, 56, 105, 136, 144, 136, 121, 116, 65, 28, -1, -28, -57, -83, -86, -88, -90, -59, -34, 6, -6, -7, 1, 16, 26, -41, -3, -12, -5, -48, 123, 119, 121, 115, 111, 100, 96, 90, 64, 37, 22, 12, 0, -13, -3, -3, -20, -21, -23, -29, --28, -30, -34, -47, -47, -33, 12, 48, 67, 81, 85, 79, 90, 101, 108, 113, -53, -53, -34, -17, 4, 2, -4, -9, -15, --14, -11, -10, -9, -7, -18, -28, -36, -42, -48, -55, -62, -68, -73, -68, -65, -65, -57, -43, -37, -21, -13, 2, -15, -35, --52, -48, -78, -76, -68, -63, -58, -48, -36, -24, -23, -24, -26, -25, -26, -23, -29, -34, -39, -43, -47, -51, -49, -52, -55, --58, -61, -63, -69, -75, -82, -89, -97, -104, -98, -92, -88, -82, -62, -62, -58, -53, -49, -46, -44, -41, -41, -39, -37, -36, --36, -35, -38, -40, -42, -44, -47, -51, -50, -51, -51, -52, -53, -53, -57, -60, -61, -64, -66, -71, -65, -63, -64, -63, -51, -13, 8, 9, 15, 17, 20, 12, 10, 6, 17, 20, 12, 18, 20, 27, 23, 20, 15, 11, 7, 5, 6, 9, 15, 16, -13, 5, 6, 2, -8, -8, -5, 10, 2, 6, 20, 9, 7, 15, 32, 40, 46, 26, 19, 7, 29, 29, 8, 24, 38, -61, 58, 48, 28, 8, -6, -13, -11, 4, 28, 29, 25, 4, 5, -7, -26, -33, -27, 10, -13, -4, 38, 8, -7, 0, -35, 51, 64, 32, 19, -9, 49, 59, 24, 49, 58, 97, 84, 67, 33, 6, -13, -26, -18, 5, 44, 42, 36, -4, 3, --29, -70, -82, -69, 6, -34, -14, 62, -2, 1, 24, 83, 114, 137, 86, 57, 3, 63, 56, -2, 33, 93, 178, 180, 135, -60, -7, -55, -82, -64, -6, 72, 83, 71, 33, 41, 8, -74, -61, -52, 17, -57, -33, 105, 13, -126, -73, -118, -99, -63, --80, -71, -4, 64, 150, 212, 181, 54, -90, -117, -79, 14, 76, 128, 155, 127, 78, 27, -49, -41, 46, 16, 13, -8, -7, --23, -1, 47, 47, 3, -99, 213, 128, 61, -44, -143, 116, 200, 116, 51, -71, -191, -69, 49, 170, 78, 20, 14, -17, -2, -32, 46, 33, -23, -10, -25, -7, -48, -44, -20, 6, 4, -52, -156, -187, -109, 124, -411, -604, -149, 43, -63, -58, -109, -205, -19, 123, 69, 4, -53, -51, -48, -20, 3, 20, 29, 20, 22, 22, 14, -18, -27, -45, 10, 27, 6, -29, -33, 3, 17, -13, -75, -238, 309, 327, 173, 47, 1, -45, -46, -39, -55, -82, -89, -7, 48, 68, 61, 40, 32, -7, -27, -38, -40, -22, -3, 7, 8, 13, -9, -17, -8, 5, 5, 28, 55, 55, 64, 198, -99, -86, -109, -96, -68, -17, 17, 37, 85, 122, 129, -128, 112, 104, 60, 22, -8, -43, -71, -90, -92, -89, -91, -50, -27, -3, -12, -15, -11, 0, 15, 37, -12, -20, -16, -55, -106, 98, 87, 86, 94, 98, 108, 115, 88, 60, 44, 33, 20, 0, 3, -2, -22, -20, -19, -20, -23, -27, -36, -44, -38, --18, 26, 56, 65, 71, 67, 60, 68, 78, 87, 92, -25, -26, -10, -2, 6, 1, -5, -7, -9, -3, 5, 0, -3, -5, --19, -31, -43, -45, -48, -51, -59, -64, -69, -62, -59, -57, -47, -27, -17, 6, 19, 39, 23, 5, -10, -12, -84, -79, -75, --72, -66, -57, -48, -42, -42, -43, -44, -42, -39, -34, -38, -41, -45, -48, -51, -54, -53, -54, -56, -58, -61, -62, -66, -72, --80, -85, -92, -99, -95, -91, -89, -82, -59, -58, -55, -52, -50, -50, -49, -47, -45, -43, -40, -39, -38, -37, -39, -41, -43, --46, -48, -52, -51, -51, -51, -51, -51, -52, -55, -57, -58, -60, -61, -65, -59, -58, -61, -60, -49, 15, 10, 11, 17, 19, -24, 16, 14, 9, 19, 21, 15, 20, 22, 27, 25, 23, 20, 13, 10, 7, 9, 11, 17, 17, 14, 6, 6, 3, -6, --7, -4, 11, 4, 7, 21, 10, 6, 15, 31, 41, 51, 33, 25, 13, 30, 29, 13, 24, 37, 56, 62, 55, 39, 16, -0, -7, -4, 10, 31, 30, 25, 4, 2, -10, -24, -35, -29, 6, -15, -5, 36, 7, -7, 2, 37, 55, 73, 44, 30, -1, 45, 55, 34, 50, 58, 87, 88, 77, 50, 15, -6, -21, -11, 11, 45, 38, 31, -9, -8, -38, -68, -88, -75, 1, --36, -18, 57, -4, -8, 20, 74, 111, 145, 101, 74, 21, 60, 53, 13, 30, 82, 156, 185, 156, 94, 18, -34, -64, -44, -10, 86, 84, 66, 28, 26, -10, -86, -90, -78, -2, -74, -45, 98, 2, -109, -55, -85, -67, -52, -70, -73, -43, 50, 144, -193, 217, 102, -78, -107, -90, -17, 43, 90, 125, 104, 49, -3, -68, -52, 55, -1, -12, -18, -9, -3, 38, 65, 49, -6, --90, 224, 106, 24, -75, -177, 69, 160, 111, 59, -68, -211, -108, 8, 144, 98, 52, 32, -5, 5, 53, 54, 43, -11, 2, --22, -19, -45, -30, -14, 1, -14, -75, -173, -182, -72, 152, -470, -555, -95, 84, -32, -7, -64, -169, -51, 61, 114, 11, -58, --59, -66, -44, -17, 8, 28, 34, 31, 22, 0, -24, -27, -44, 8, 20, 4, -22, -21, 24, -16, -20, -32, -307, 307, 247, -103, 16, 15, -51, -58, -31, -41, -69, -89, -19, 35, 51, 56, 44, 49, 7, -14, -23, -23, -3, 21, 15, 8, 9, -8, --16, -5, 1, 3, 38, 71, 66, 81, 224, -88, -55, -56, -54, -49, -21, 3, 26, 66, 107, 118, 119, 102, 89, 54, 16, --17, -55, -79, -90, -94, -88, -88, -41, -20, -11, -15, -20, -23, -13, 6, 31, -16, -23, -29, -62, 78, 65, 46, 54, 75, -95, 118, 137, 112, 85, 70, 59, 46, 20, 14, 3, -21, -17, -17, -17, -23, -28, -39, -39, -28, -3, 36, 59, 57, 56, -47, 39, 45, 53, 63, 65, 7, 7, 21, 20, 15, 7, 2, 3, 5, 13, 22, 11, 1, -6, -19, -33, -46, -45, -46, --47, -54, -58, -63, -54, -50, -46, -33, -7, 7, 33, 49, 72, 57, 42, 29, 23, -80, -74, -73, -72, -66, -60, -56, -55, --55, -57, -56, -52, -47, -40, -43, -44, -47, -49, -52, -55, -55, -55, -57, -58, -60, -61, -63, -67, -73, -77, -80, -86, -82, --81, -81, -74, -55, -53, -52, -50, -50, -52, -52, -51, -48, -45, -43, -41, -40, -39, -41, -43, -44, -47, -49, -52, -51, -51, --51, -51, -51, -51, -53, -54, -54, -55, -56, -57, -52, -51, -57, -56, -50, 16, 11, 12, 17, 20, 25, 18, 15, 11, 18, -20, 17, 20, 21, 24, 25, 24, 22, 15, 11, 8, 11, 13, 19, 17, 14, 6, 7, 3, -3, -5, -3, 11, 5, 8, -21, 11, 7, 15, 29, 40, 53, 37, 29, 16, 28, 27, 18, 24, 35, 49, 62, 59, 46, 22, 6, -2, 3, 15, 31, -30, 23, 1, -1, -12, -21, -35, -31, 1, -16, -6, 30, 6, -4, 6, 37, 57, 80, 53, 37, 8, 37, 46, 43, 50, -57, 73, 88, 82, 60, 21, -1, -17, -4, 15, 40, 33, 27, -17, -17, -46, -64, -91, -78, -6, -36, -19, 48, -4, -12, -18, 63, 104, 149, 112, 85, 33, 52, 46, 30, 32, 75, 131, 182, 168, 120, 39, -14, -43, -22, 24, 89, 81, 59, 20, -7, -29, -88, -113, -100, -22, -86, -52, 80, -6, -78, -33, -42, -30, -46, -59, -73, -76, 32, 127, 161, 228, 129, -75, -100, --101, -53, 3, 41, 73, 62, 11, -34, -85, -60, 62, -12, -29, -26, -13, 15, 76, 83, 56, -8, -68, 216, 78, -7, -96, --194, 17, 112, 100, 67, -59, -217, -137, -30, 105, 113, 85, 50, 11, 16, 71, 59, 49, 2, 15, -15, -31, -40, -19, -10, -2, -26, -96, -191, -178, -37, 162, -493, -490, -76, 84, 17, 34, -37, -142, -117, 1, 156, 22, -59, -66, -81, -66, -39, -5, -20, 34, 32, 17, -14, -32, -28, -41, 5, 13, 2, -15, -13, 30, -47, -47, 10, -343, 278, 143, 41, 1, 46, -38, -53, --24, -27, -52, -76, -24, 23, 33, 49, 50, 61, 20, -1, -9, -6, 14, 34, 22, 7, 1, -8, -13, -2, -1, 4, 51, -77, 71, 106, 236, -72, -25, -9, -19, -36, -24, -7, 17, 49, 91, 108, 110, 94, 77, 48, 11, -25, -62, -82, -86, -93, --84, -81, -32, -13, -15, -17, -24, -30, -22, -2, 24, -14, -22, -40, -65, 43, 26, 2, 20, 54, 91, 124, 149, 130, 109, -98, 86, 72, 43, 30, 12, -15, -12, -15, -18, -27, -32, -40, -33, -17, 9, 41, 55, 44, 39, 28, 21, 26, 31, 40, -37, 40, 42, 53, 45, 32, 21, 16, 18, 22, 30, 38, 20, 4, -9, -21, -33, -46, -43, -42, -42, -47, -51, -56, -43, --37, -30, -16, 13, 32, 56, 72, 94, 81, 71, 61, 54, -69, -62, -64, -64, -59, -55, -55, -59, -59, -61, -59, -55, -48, --41, -43, -43, -45, -47, -50, -53, -55, -54, -56, -57, -60, -63, -60, -61, -65, -64, -63, -65, -62, -64, -65, -58, -49, -45, --46, -45, -47, -50, -50, -50, -47, -45, -43, -42, -41, -40, -42, -43, -44, -46, -48, -50, -51, -51, -51, -51, -52, -53, -52, --52, -51, -50, -50, -48, -45, -43, -51, -50, -49, 15, 12, 13, 17, 20, 26, 19, 16, 11, 16, 18, 18, 19, 20, 21, -24, 24, 22, 15, 11, 8, 11, 13, 18, 15, 13, 6, 6, 3, -1, -4, -2, 10, 6, 8, 20, 12, 8, 15, 26, -37, 53, 40, 32, 16, 24, 24, 23, 24, 33, 42, 60, 60, 50, 26, 11, 3, 9, 18, 28, 28, 20, -3, -5, -14, --20, -34, -32, -6, -16, -6, 22, 5, 0, 10, 36, 56, 83, 59, 43, 10, 27, 36, 50, 49, 55, 60, 85, 82, 66, -25, 4, -12, 1, 17, 31, 27, 21, -27, -24, -53, -61, -92, -78, -17, -33, -18, 35, -3, -14, 15, 49, 93, 148, 119, -92, 37, 40, 38, 48, 37, 70, 108, 175, 173, 137, 58, 8, -20, 1, 35, 82, 74, 51, 7, -12, -45, -84, -130, -118, --43, -92, -55, 54, -13, -36, -5, 10, 10, -43, -44, -64, -95, 13, 101, 123, 218, 138, -73, -95, -112, -90, -39, -12, 10, -11, -30, -63, -95, -64, 64, -19, -37, -28, -15, 31, 109, 102, 67, -1, -33, 189, 47, -33, -108, -196, -35, 61, 87, 76, --40, -207, -157, -66, 58, 119, 113, 68, 32, 32, 85, 60, 51, 15, 26, -9, -41, -35, -9, -7, 4, -33, -112, -208, -172, --5, 157, -471, -408, -79, 59, 77, 71, -18, -130, -170, -51, 183, 35, -51, -71, -89, -82, -59, -19, 7, 21, 25, 7, -27, --40, -30, -35, 2, 7, 1, -9, -9, 22, -68, -61, 32, -343, 229, 42, 0, 5, 84, -1, -27, -21, -16, -36, -55, -27, -10, 14, 43, 57, 69, 33, 14, 4, 10, 27, 44, 26, 5, -8, -8, -9, 3, 1, 8, 59, 69, 66, 130, 231, -52, -3, 31, 10, -30, -29, -16, 5, 33, 73, 95, 99, 86, 67, 42, 6, -32, -64, -80, -81, -89, -78, -68, -23, -6, -16, --17, -25, -32, -24, -6, 14, -9, -18, -47, -63, 7, -13, -39, -13, 31, 82, 119, 146, 138, 128, 124, 111, 96, 64, 47, -25, -6, -6, -16, -24, -33, -37, -39, -25, -6, 19, 41, 46, 29, 24, 14, 7, 12, 13, 19, 10, 69, 72, 80, 70, -53, 39, 34, 36, 38, 43, 48, 25, 5, -13, -22, -32, -43, -40, -39, -37, -40, -43, -47, -31, -22, -10, 4, 33, 52, -72, 85, 103, 95, 90, 85, 78, -53, -46, -50, -50, -45, -43, -46, -52, -53, -55, -53, -50, -44, -39, -39, -40, -41, -43, --46, -49, -53, -52, -54, -57, -60, -64, -58, -56, -56, -51, -46, -43, -42, -44, -46, -41, -40, -35, -37, -38, -41, -43, -43, --44, -42, -40, -40, -40, -40, -39, -40, -41, -42, -43, -44, -45, -47, -48, -50, -48, -50, -53, -50, -49, -45, -44, -42, -38, --36, -34, -44, -42, -46, 14, 12, 13, 16, 19, 25, 19, 16, 10, 13, 15, 19, 18, 18, 18, 23, 23, 21, 14, 11, -7, 11, 12, 16, 13, 11, 3, 4, 1, -2, -4, -2, 6, 6, 7, 16, 11, 7, 13, 21, 32, 50, 41, 32, 14, -18, 20, 28, 24, 31, 36, 57, 59, 50, 29, 15, 8, 13, 19, 23, 25, 17, -8, -8, -15, -20, -32, -31, -15, -15, --6, 11, 4, 4, 15, 33, 53, 81, 64, 47, 10, 16, 26, 57, 48, 52, 49, 79, 80, 66, 27, 8, -7, 4, 17, -20, 20, 16, -36, -30, -57, -62, -90, -76, -30, -29, -15, 19, -1, -15, 11, 32, 78, 141, 122, 94, 34, 27, 31, 66, -43, 67, 91, 164, 172, 145, 72, 28, 3, 21, 43, 68, 64, 42, -9, -29, -58, -78, -140, -130, -66, -92, -55, 23, -20, -11, 28, 63, 49, -39, -27, -48, -98, -2, 70, 84, 192, 134, -69, -92, -122, -126, -78, -62, -52, -42, -68, -88, -97, -62, -63, -20, -36, -22, -10, 47, 134, 118, 80, 13, 7, 149, 16, -53, -112, -185, -80, 12, 73, 84, -15, -183, -169, -97, 14, -115, 134, 83, 55, 50, 96, 59, 48, 25, 33, -3, -46, -30, -3, -3, 5, -39, -122, -218, -164, 23, 138, -409, -315, -95, -23, 134, 100, 1, -110, -199, -90, 186, 50, -33, -72, -90, -91, -74, -32, -10, -1, 11, -6, -38, -47, -33, -27, 2, 4, --1, -3, -8, 3, -72, -61, 25, -312, 165, -29, -10, 27, 115, 51, 16, -18, -8, -25, -34, -29, -1, -2, 38, 62, 72, -45, 29, 17, 24, 37, 50, 29, 3, -14, -9, -5, 6, 3, 11, 56, 49, 50, 139, 203, -29, 25, 57, 28, -27, -37, --28, -11, 14, 50, 79, 84, 76, 59, 38, 3, -35, -61, -73, -74, -81, -67, -50, -14, 0, -14, -16, -23, -26, -20, -8, -3, -2, -13, -45, -55, -26, -50, -72, -41, 9, 64, 100, 128, 134, 136, 140, 128, 112, 80, 63, 37, 4, -2, -18, -32, --41, -41, -37, -16, 3, 26, 36, 32, 13, 10, 4, -1, 1, -1, 1, -14, 88, 92, 96, 86, 70, 55, 51, 52, 51, -50, 50, 26, 4, -17, -24, -32, -40, -37, -34, -32, -33, -35, -39, -19, -7, 10, 23, 50, 68, 81, 89, 102, 98, 98, -96, 92, -35, -26, -30, -30, -27, -27, -31, -38, -41, -44, -43, -42, -38, -35, -36, -36, -37, -40, -43, -47, -50, -49, -52, --55, -59, -63, -56, -51, -48, -40, -31, -24, -24, -26, -27, -23, -30, -24, -27, -29, -32, -34, -34, -35, -34, -35, -36, -36, --37, -38, -39, -39, -40, -40, -41, -41, -43, -44, -46, -44, -46, -51, -47, -43, -39, -36, -33, -28, -27, -25, -34, -32, -43, -11, 11, 12, 14, 16, 23, 18, 15, 8, 10, 12, 19, 16, 16, 15, 20, 20, 19, 13, 10, 7, 10, 11, 13, 10, -9, 1, 3, 0, -3, -4, -2, 3, 5, 7, 12, 10, 7, 11, 16, 27, 46, 40, 31, 10, 13, 16, 31, 23, 27, -29, 52, 56, 48, 31, 19, 12, 16, 19, 17, 20, 12, -14, -10, -14, -20, -28, -29, -23, -14, -6, 0, 1, 6, 19, -28, 47, 77, 65, 49, 5, 7, 16, 62, 45, 49, 40, 73, 75, 62, 28, 11, -1, 7, 15, 8, 13, 11, -45, -34, --60, -68, -87, -71, -43, -23, -11, 5, 1, -17, 8, 16, 62, 128, 121, 91, 23, 14, 25, 82, 48, 62, 75, 151, 167, -145, 83, 46, 24, 36, 47, 49, 52, 33, -28, -42, -65, -73, -140, -133, -88, -87, -50, -9, -26, 54, 62, 109, 82, -31, --10, -30, -87, -13, 38, 46, 155, 118, -62, -90, -130, -156, -112, -103, -103, -87, -98, -106, -92, -53, 58, -17, -27, -11, 0, -62, 148, 130, 92, 31, 45, 102, -11, -67, -111, -167, -116, -30, 58, 88, 12, -152, -173, -121, -23, 101, 141, 96, 78, 69, -101, 56, 42, 31, 36, 1, -47, -27, 1, -2, 1, -44, -124, -217, -152, 45, 109, -324, -226, -118, -14, 180, 118, 22, -71, --204, -118, 167, 64, -9, -73, -87, -94, -85, -43, -27, -27, -5, -18, -44, -51, -33, -18, 3, 3, -2, 1, -7, -19, -58, --48, -7, -261, 94, -53, 17, 63, 129, 103, 63, -8, -3, -21, -20, -30, -10, -13, 34, 63, 68, 54, 43, 29, 35, 43, -52, 29, 2, -17, -9, 0, 6, 3, 12, 45, 24, 28, 125, 147, -6, 39, 69, 39, -26, -46, -44, -30, -8, 24, 58, -64, 62, 51, 32, 1, -35, -54, -63, -67, -70, -53, -31, -6, 4, -10, -15, -18, -16, -14, -8, -7, 2, -6, -34, -39, --53, -78, -92, -62, -15, 35, 68, 95, 117, 133, 146, 136, 120, 89, 72, 45, 11, -3, -23, -40, -47, -43, -32, -8, 10, -29, 27, 17, -1, -1, -2, -7, -6, -12, -15, -34, 94, 96, 97, 89, 77, 66, 63, 64, 59, 52, 47, 23, 1, -21, --25, -31, -37, -32, -28, -26, -26, -27, -32, -9, 7, 29, 40, 62, 77, 82, 83, 89, 89, 94, 95, 92, -13, -1, -5, --7, -7, -10, -16, -22, -27, -31, -32, -34, -33, -34, -34, -35, -36, -39, -42, -46, -48, -46, -47, -50, -54, -57, -49, -44, --38, -28, -17, -9, -8, -9, -9, -3, -20, -14, -18, -20, -24, -25, -26, -27, -28, -30, -33, -34, -36, -38, -38, -38, -38, --38, -38, -38, -39, -40, -42, -39, -41, -46, -41, -37, -33, -29, -26, -20, -19, -17, -25, -22, -40, 10, 10, 12, 12, 14, -21, 17, 14, 6, 7, 9, 19, 14, 14, 12, 18, 19, 17, 12, 9, 7, 9, 9, 9, 8, 6, -2, 0, -2, -6, --5, -3, -2, 5, 6, 8, 9, 5, 10, 12, 23, 41, 39, 30, 6, 9, 13, 34, 22, 24, 24, 48, 53, 45, 32, -22, 16, 17, 17, 12, 15, 7, -18, -10, -12, -21, -22, -24, -29, -13, -6, -9, -1, 8, 23, 25, 42, 69, 65, 49, -2, 1, 10, 66, 43, 45, 33, 67, 71, 57, 30, 15, 5, 8, 12, -2, 5, 5, -52, -37, -60, -76, -82, -65, -56, --18, -7, -7, 1, -20, 6, 4, 47, 112, 117, 86, 13, 5, 23, 96, 51, 54, 61, 138, 160, 140, 92, 61, 41, 46, -47, 30, 37, 22, -46, -48, -65, -70, -132, -126, -107, -78, -44, -37, -32, 90, 93, 145, 109, -16, 6, -11, -63, -19, 10, -14, 115, 100, -43, -84, -132, -174, -138, -133, -137, -122, -119, -118, -79, -39, 50, -10, -13, 3, 13, 73, 147, 135, 102, 52, -77, 55, -31, -71, -105, -148, -138, -59, 46, 91, 37, -117, -170, -138, -50, 77, 135, 105, 99, 86, 100, 51, 35, 32, 35, -3, -45, -22, 3, -4, -3, -46, -116, -202, -133, 61, 78, -237, -148, -139, -43, 216, 129, 44, -25, -191, -135, 134, 80, 21, --68, -78, -90, -89, -52, -40, -47, -21, -27, -48, -52, -31, -9, 6, 2, -2, 5, -2, -36, -32, -29, -55, -206, 25, -25, -66, 98, 122, 141, 108, 16, 3, -20, -10, -32, -16, -17, 31, 59, 61, 59, 55, 39, 43, 46, 52, 27, 1, -17, -7, -2, 2, 0, 10, 28, 1, 5, 87, 70, 16, 46, 72, 47, -21, -50, -58, -49, -30, -2, 34, 42, 46, 44, 25, 0, --29, -43, -51, -57, -56, -37, -12, 2, 7, -7, -12, -11, -5, -6, -6, -14, 3, 0, -14, -16, -72, -94, -96, -72, -36, -3, 30, 57, 93, 120, 140, 135, 121, 92, 75, 48, 14, -6, -28, -45, -50, -42, -26, 0, 16, 28, 17, 3, -10, -9, --6, -10, -12, -21, -29, -49, 85, 84, 81, 78, 72, 67, 68, 71, 62, 51, 43, 20, -1, -23, -25, -29, -33, -28, -23, --20, -20, -20, -24, 0, 18, 44, 52, 68, 79, 75, 70, 67, 71, 78, 81, 80, 11, 24, 20, 16, 13, 7, 0, -6, --13, -18, -22, -26, -29, -33, -33, -34, -35, -37, -41, -44, -45, -41, -40, -41, -44, -45, -38, -31, -25, -13, -1, 7, 10, -9, 11, 17, -11, -5, -10, -13, -15, -17, -18, -19, -22, -25, -29, -31, -34, -37, -36, -36, -36, -36, -36, -35, -35, -36, --38, -33, -34, -40, -35, -31, -27, -23, -20, -14, -12, -9, -16, -13, -37, 8, 9, 11, 10, 12, 18, 15, 13, 3, 5, -7, 18, 13, 12, 10, 16, 16, 15, 10, 8, 6, 7, 7, 7, 5, 4, -4, -1, -4, -9, -6, -3, -6, 4, 6, -5, 7, 2, 9, 8, 18, 35, 36, 27, 2, 5, 11, 36, 20, 20, 18, 42, 48, 42, 32, 24, 18, 17, 14, 8, -9, 2, -20, -9, -9, -22, -16, -19, -33, -10, -5, -15, -4, 7, 25, 21, 36, 60, 62, 48, -3, -4, 5, 68, 38, -39, 26, 61, 66, 52, 31, 18, 10, 7, 7, -8, -4, -2, -57, -38, -59, -86, -76, -60, -68, -13, -3, -16, 0, -24, -3, -6, 33, 92, 108, 80, 3, -4, 21, 106, 50, 42, 46, 121, 148, 132, 97, 71, 55, 50, 42, 13, 20, 10, -58, --47, -58, -64, -115, -111, -119, -66, -37, -59, -37, 114, 117, 168, 128, 5, 19, 1, -37, -22, -13, -13, 79, 84, -12, -73, --129, -181, -155, -151, -155, -143, -130, -123, -59, -20, 39, -2, 0, 16, 24, 77, 133, 131, 110, 70, 99, 14, -43, -71, -98, --130, -151, -78, 39, 90, 57, -81, -164, -152, -70, 47, 117, 108, 113, 97, 93, 44, 26, 30, 30, 1, -40, -15, 2, -8, --7, -44, -102, -176, -110, 69, 47, -166, -82, -148, -58, 237, 133, 59, 11, -174, -146, 92, 93, 53, -59, -66, -81, -87, -59, --50, -60, -32, -33, -48, -48, -26, -1, 8, 1, 2, 7, 7, -41, -5, -10, -103, -160, -34, 41, 107, 107, 81, 150, 141, -53, 13, -22, -7, -35, -22, -18, 24, 47, 50, 60, 61, 49, 49, 48, 51, 23, 1, -13, -4, 1, -1, -5, 5, 11, --12, -15, 28, -20, 38, 49, 68, 55, -13, -49, -71, -68, -52, -28, 8, 19, 29, 34, 18, 0, -20, -31, -38, -45, -39, --18, 6, 9, 9, -4, -7, -4, 2, 1, -2, -17, 1, 5, 10, 14, -79, -96, -86, -74, -54, -29, -7, 20, 65, 99, -123, 122, 112, 89, 71, 45, 11, -12, -32, -47, -50, -39, -19, 6, 18, 23, 6, -8, -15, -13, -9, -14, -16, -28, -40, --59, 64, 59, 53, 54, 54, 57, 62, 67, 58, 48, 40, 19, 0, -21, -22, -25, -28, -23, -19, -17, -14, -13, -15, 7, -27, 55, 59, 68, 73, 62, 52, 42, 48, 57, 61, 59, 34, 44, 40, 35, 28, 21, 13, 8, -1, -7, -13, -19, -25, --32, -31, -31, -32, -35, -38, -41, -40, -34, -31, -29, -30, -28, -21, -15, -7, 4, 16, 24, 26, 26, 29, 35, -4, 2, --4, -6, -8, -10, -11, -13, -16, -20, -25, -28, -30, -34, -33, -33, -33, -33, -32, -31, -31, -31, -33, -26, -26, -31, -26, --23, -19, -16, -13, -8, -5, -1, -7, -5, -32, 6, 7, 10, 9, 10, 15, 14, 11, 2, 3, 5, 18, 11, 10, 8, -14, 14, 13, 9, 7, 6, 6, 5, 5, 3, 1, -5, -3, -5, -12, -6, -4, -9, 3, 5, 2, 6, 0, 8, 5, -14, 28, 33, 25, -1, 1, 8, 37, 16, 14, 13, 36, 43, 39, 31, 24, 20, 15, 11, 5, 3, -3, -21, -8, -6, --21, -10, -13, -34, -8, -4, -19, -6, 6, 27, 18, 31, 50, 58, 46, -6, -8, 1, 70, 32, 33, 22, 54, 60, 49, -31, 20, 15, 6, 2, -11, -12, -10, -59, -39, -56, -94, -68, -53, -76, -9, 1, -22, -1, -27, 2, -12, 21, 71, 99, -74, -3, -11, 18, 112, 43, 24, 30, 102, 134, 124, 98, 76, 64, 48, 35, -1, 2, -3, -62, -41, -46, -54, -91, -90, --120, -53, -30, -74, -41, 127, 135, 180, 143, 34, 27, 6, -11, -22, -28, -31, 52, 78, 29, -54, -119, -176, -163, -161, -159, --151, -132, -121, -34, 0, 27, 6, 10, 21, 28, 71, 109, 120, 113, 87, 112, -18, -47, -65, -90, -115, -155, -88, 38, 86, -72, -45, -153, -161, -83, 16, 91, 106, 118, 101, 82, 34, 17, 25, 22, -2, -32, -8, -2, -11, -10, -34, -82, -143, -86, -70, 20, -113, -22, -134, -50, 249, 139, 76, 45, -152, -150, 48, 105, 86, -41, -51, -70, -79, -61, -54, -62, -35, -33, -46, --40, -18, 6, 6, 1, 6, 5, 17, -34, 14, 6, -135, -122, -78, 129, 127, 85, 19, 125, 152, 102, 30, -18, -7, -37, --26, -16, 15, 31, 38, 57, 65, 56, 52, 49, 48, 18, 0, -9, -2, -2, -3, -7, 1, -2, -14, -29, -45, -109, 65, -54, 65, 63, 1, -38, -75, -82, -69, -48, -14, 0, 13, 26, 14, 4, -7, -18, -24, -29, -19, 1, 21, 15, 11, -1, --2, 3, 6, 5, 2, -16, -3, 10, 36, 53, -78, -84, -65, -66, -63, -53, -35, -10, 40, 75, 98, 102, 97, 80, 64, -38, 4, -19, -35, -45, -48, -35, -13, 10, 18, 15, -4, -14, -16, -14, -11, -18, -21, -33, -47, -64, 38, 29, 20, 25, -28, 40, 50, 58, 52, 45, 40, 22, 5, -13, -15, -18, -21, -17, -15, -16, -9, -5, -4, 15, 34, 61, 60, 62, 63, -48, 34, 19, 26, 34, 37, 34, 49, 57, 53, 47, 39, 32, 25, 20, 10, 3, -4, -12, -19, -27, -26, -27, -27, -30, --32, -34, -34, -24, -19, -14, -14, -8, -3, 4, 11, 21, 31, 38, 40, 39, 42, 47, 3, 7, 3, 1, 0, -2, -4, --6, -9, -13, -18, -21, -24, -28, -27, -27, -27, -26, -25, -24, -25, -24, -27, -16, -16, -21, -18, -14, -12, -9, -7, -2, -1, 5, -1, 2, -23, 4, 5, 8, 6, 7, 11, 11, 9, -1, 0, 2, 16, 7, 7, 6, 11, 11, 10, 7, 5, -4, 4, 3, 4, 0, -1, -6, -3, -6, -13, -5, -3, -11, 2, 4, 1, 4, -2, 6, 2, 9, 20, 28, 21, -4, --3, 4, 36, 10, 6, 8, 27, 35, 34, 28, 22, 19, 13, 7, 3, -3, -8, -20, -8, -5, -22, -6, -9, -34, -6, --3, -20, -9, 4, 26, 14, 26, 39, 53, 41, -10, -13, -5, 67, 24, 23, 16, 46, 52, 45, 30, 19, 16, 4, -3, --10, -20, -18, -57, -39, -53, -98, -60, -47, -80, -6, 3, -24, -3, -29, 0, -16, 9, 49, 86, 67, -9, -19, 12, 111, -31, 2, 12, 78, 115, 114, 95, 76, 66, 42, 24, -10, -15, -15, -59, -31, -30, -38, -66, -66, -110, -41, -23, -81, -44, -128, 142, 182, 154, 66, 30, 2, 7, -23, -40, -45, 36, 81, 73, -30, -105, -163, -164, -162, -154, -147, -125, -110, -7, 17, -16, 12, 11, 20, 25, 59, 78, 102, 112, 100, 115, -39, -44, -60, -86, -107, -158, -99, 35, 75, 77, -11, -140, -169, -98, --15, 61, 98, 113, 95, 66, 22, 7, 20, 14, -6, -23, -4, -6, -9, -12, -21, -59, -109, -65, 64, -3, -69, 36, -106, --33, 239, 143, 91, 73, -129, -149, 4, 108, 112, -16, -36, -60, -70, -62, -54, -55, -30, -28, -40, -30, -9, 8, 4, 3, -7, 3, 19, -17, 22, 14, -143, -93, -104, 196, 107, 30, -55, 66, 134, 150, 49, -11, -14, -40, -32, -18, 1, 12, 25, -49, 63, 61, 55, 49, 43, 11, -2, -5, -2, -4, -3, -7, -2, -8, -11, -37, -118, -184, 95, 64, 60, 64, 13, -25, --75, -92, -84, -65, -34, -19, -4, 16, 11, 8, 4, -6, -10, -11, 2, 20, 34, 20, 11, 1, 3, 6, 7, 6, 5, --11, -6, 14, 59, 95, -70, -67, -43, -54, -64, -68, -53, -29, 20, 52, 68, 76, 76, 65, 51, 27, -5, -25, -36, -42, --43, -30, -8, 11, 14, 6, -11, -17, -16, -13, -13, -21, -25, -38, -51, -65, 10, -3, -12, -6, -2, 17, 31, 44, 41, -40, 40, 26, 14, 0, -4, -9, -12, -11, -12, -15, -4, 2, 7, 20, 38, 61, 57, 51, 50, 33, 19, 2, 9, 14, -16, 11, 58, 62, 59, 53, 45, 39, 33, 30, 20, 11, 4, -5, -12, -21, -20, -20, -20, -22, -23, -26, -24, -13, -6, -1, 4, 12, 16, 22, 27, 33, 41, 46, 46, 45, 49, 52, 8, 11, 8, 7, 7, 5, 3, 1, -2, -5, -9, -12, --15, -19, -18, -18, -18, -17, -17, -16, -16, -15, -17, -6, -5, -8, -7, -5, -3, -1, 1, 4, 7, 10, 6, 8, -14, -5, 4, 10, 7, 8, 10, 12, 10, 0, 1, 3, 17, 7, 7, 6, 10, 11, 11, 8, 6, 6, 2, 1, 1, -2, --4, -8, -6, -8, -15, -7, -5, -14, 1, 4, -3, 2, -5, 8, 3, 9, 17, 28, 23, -2, -2, 5, 37, 8, 3, -5, 21, 30, 33, 28, 22, 18, 9, 4, 3, -8, -11, -17, -7, -4, -21, -1, -4, -30, -2, -2, -20, -7, 3, 28, -16, 26, 35, 53, 43, -6, -11, -5, 68, 19, 19, 15, 39, 46, 45, 30, 20, 17, 2, -8, -7, -27, -27, -50, -39, --48, -95, -50, -40, -78, -4, 5, -25, -3, -28, 2, -12, 5, 35, 83, 70, -3, -19, 12, 110, 23, -14, -2, 56, 96, -106, 91, 73, 63, 33, 14, -16, -30, -24, -49, -20, -16, -22, -41, -43, -91, -29, -17, -81, -43, 123, 146, 185, 168, 106, -38, 3, 26, -16, -39, -47, 38, 99, 121, 3, -80, -136, -154, -153, -139, -136, -112, -92, 16, 27, 8, 13, 8, 15, 15, -42, 48, 82, 104, 106, 113, -50, -34, -45, -75, -91, -151, -99, 38, 67, 83, 28, -117, -166, -105, -35, 39, 91, 105, 86, -48, 9, -2, 16, 6, -10, -14, -2, -6, -6, -10, -12, -32, -77, -46, 54, -18, -30, 89, -55, 2, 229, 159, 117, 105, --93, -131, -26, 114, 141, 26, -12, -45, -54, -55, -43, -38, -19, -18, -32, -17, -1, 7, 2, 3, 5, 3, 12, -1, 21, -15, -129, -65, -114, 225, 68, -28, -113, -2, 102, 194, 80, 13, -15, -32, -29, -16, -9, -1, 17, 44, 62, 64, 54, 48, -34, 4, -3, -3, -3, -4, -3, -5, -2, -8, -7, -40, -177, -232, 133, 93, 70, 68, 32, -5, -62, -89, -87, -68, -38, --26, -9, 17, 16, 18, 18, 9, 8, 11, 23, 39, 42, 23, 11, 2, 5, 6, 6, 5, 6, -5, -6, 20, 77, 142, --59, -41, -16, -34, -52, -65, -53, -32, 12, 36, 45, 54, 56, 50, 38, 18, -11, -26, -32, -35, -37, -23, -2, 11, 10, --2, -13, -16, -13, -11, -11, -21, -26, -38, -51, -58, -12, -26, -33, -27, -23, 1, 17, 32, 35, 40, 46, 38, 29, 20, -13, 7, 1, 0, -3, -10, 0, 9, 16, 25, 38, 54, 47, 40, 36, 21, 7, -9, -4, -1, 0, -7, 57, 62, 60, -56, 49, 45, 41, 40, 31, 23, 15, 7, 0, -9, -8, -8, -8, -9, -9, -12, -14, 1, 9, 17, 21, 34, 35, 38, -40, 44, 48, 50, 49, 47, 51, 54, 14, 19, 17, 17, 17, 16, 14, 13, 10, 8, 5, 3, 0, -3, -2, -2, -2, --2, -2, 0, -4, -5, -9, 7, 5, 1, 1, 2, 3, 4, 5, 6, 11, 17, 9, 13, 3, 3, 6, 8, 6, 7, -8, 11, 9, 0, 0, 2, 15, 6, 5, 5, 8, 9, 10, 7, 5, 4, 4, 4, 6, -2, -2, -3, -2, -3, -9, --2, 0, -8, 4, 5, 1, 5, 0, 8, 3, 7, 13, 26, 22, -1, -4, 3, 35, 5, -2, 1, 13, 22, 29, 24, -19, 15, 10, 2, 5, -10, -13, -12, -8, -6, -20, 1, -1, -26, 1, 1, -15, -6, 6, 28, 16, 26, 29, 51, 42, --3, -11, -7, 64, 14, 13, 11, 29, 36, 42, 27, 17, 15, 2, -9, -1, -33, -32, -40, -37, -40, -80, -40, -32, -67, --1, 7, -22, -2, -22, 4, -10, 1, 21, 75, 69, 2, -20, 8, 104, 16, -27, -17, 29, 70, 94, 81, 63, 54, 25, -4, -16, -40, -28, -36, -9, -8, -11, -20, -25, -67, -18, -10, -74, -40, 118, 138, 179, 177, 137, 42, -1, 34, -13, -38, --48, 37, 112, 158, 36, -52, -106, -138, -140, -121, -118, -96, -67, 32, 31, 2, 11, 3, 11, 5, 25, 26, 58, 91, 105, -109, -46, -17, -33, -67, -82, -147, -105, 34, 54, 83, 64, -91, -159, -113, -52, 19, 80, 91, 69, 29, -1, -8, 14, -2, --11, -6, -3, -4, -4, -5, -8, -12, -48, -31, 41, -24, 16, 134, -12, 23, 190, 163, 134, 126, -55, -108, -55, 105, 152, -63, 4, -37, -42, -49, -34, -17, -2, -5, -20, -6, 4, 4, 2, 3, 3, 3, 5, 4, 17, 10, -95, -35, -107, 187, --13, -102, -169, -82, 47, 209, 107, 41, -22, -30, -34, -25, -25, -16, 7, 34, 55, 65, 56, 47, 23, -1, -4, -2, -3, --3, -2, -3, -2, -5, -4, -41, -205, -245, 176, 125, 70, 55, 35, 5, -49, -83, -86, -69, -45, -34, -16, 15, 18, 24, -26, 22, 24, 32, 46, 56, 47, 24, 9, 2, 5, 5, 5, 3, 5, 1, -3, 28, 89, 183, -36, -18, 2, -15, -36, --52, -43, -28, 9, 25, 27, 33, 33, 30, 21, 6, -16, -25, -27, -26, -26, -13, 6, 12, 7, -6, -12, -13, -10, -7, --7, -17, -22, -32, -42, -44, -24, -39, -44, -38, -35, -11, 4, 18, 26, 37, 49, 47, 44, 40, 31, 23, 16, 12, 6, --3, 9, 18, 26, 30, 37, 44, 37, 28, 26, 12, 2, -13, -10, -10, -10, -18, 58, 56, 55, 53, 48, 47, 45, 46, -40, 32, 25, 19, 14, 7, 8, 8, 8, 7, 8, 6, 4, 18, 27, 34, 40, 53, 52, 53, 53, 52, 52, 51, 50, -49, 51, 52, 25, 25, 25, 26, 27, 26, 24, 24, 22, 21, 19, 18, 16, 14, 15, 14, 14, 14, 14, 15, 14, 13, -8, 24, 22, 19, 17, 17, 17, 17, 17, 17, 22, 26, 20, 24, 19, -3, 0, 2, 0, 1, 1, 4, 2, -6, -6, --5, 8, -1, -2, -1, 0, 1, 4, 0, -1, -3, -2, -1, 4, -9, -8, -3, -4, -4, -8, -2, -2, -9, -1, -2, --1, -1, -4, 2, -3, 0, 2, 16, 13, -8, -11, -6, 25, -3, -11, -9, -2, 7, 19, 14, 10, 6, 4, -4, 1, --17, -19, -12, -16, -16, -25, -4, -3, -25, -3, -3, -18, -10, 1, 22, 10, 18, 17, 40, 32, -9, -19, -16, 51, 4, -3, 1, 12, 18, 33, 18, 9, 6, -3, -13, 0, -41, -38, -32, -37, -36, -63, -32, -27, -57, -3, 4, -24, -7, -21, -0, -12, -9, 0, 57, 57, -4, -28, -2, 85, 6, -39, -37, -6, 36, 73, 63, 49, 39, 14, -5, -15, -44, -28, -20, --3, -3, -2, -7, -11, -43, -11, -7, -66, -39, 100, 117, 164, 171, 149, 35, -15, 25, -25, -50, -55, 25, 108, 171, 58, --30, -84, -126, -129, -107, -102, -78, -41, 38, 27, 0, 7, 1, 5, 2, 10, 11, 34, 69, 89, 94, -46, -8, -31, -72, --88, -157, -127, 7, 20, 60, 76, -83, -165, -137, -76, -5, 60, 68, 46, 6, -14, -14, 9, -9, -10, -3, -2, -2, -2, --2, -5, -3, -23, -20, 23, -32, 46, 149, 20, 32, 143, 158, 140, 124, -32, -100, -98, 73, 141, 90, 12, -35, -38, -46, --26, 0, 9, 4, -12, 2, 4, 2, 1, 2, 1, 1, 3, 2, 11, 4, -69, -12, -112, 89, -94, -158, -195, -151, -21, -178, 116, 59, -38, -39, -52, -47, -50, -36, -9, 20, 41, 55, 50, 37, 9, -6, -4, -1, -2, -2, -2, -2, -2, -2, --3, -41, -208, -230, 202, 151, 63, 25, 23, -4, -50, -87, -96, -83, -61, -50, -31, 4, 14, 23, 26, 25, 32, 44, 59, -63, 43, 20, 5, 2, 4, 3, 3, 2, 3, 3, -2, 33, 86, 202, -28, -6, 7, -9, -28, -47, -43, -37, -9, -1, --4, 0, 1, -1, -4, -11, -26, -30, -29, -25, -21, -9, 9, 8, 3, -7, -9, -7, -6, -4, -4, -12, -19, -28, -36, --35, -40, -55, -58, -52, -49, -30, -18, -8, 5, 20, 36, 41, 44, 47, 37, 28, 20, 14, 7, -2, 10, 19, 28, 26, -30, 28, 24, 13, 13, 1, -5, -19, -20, -23, -25, -34, 46, 34, 34, 34, 31, 32, 33, 35, 33, 28, 23, 19, 16, -14, 14, 15, 15, 15, 16, 14, 18, 26, 33, 41, 48, 59, 55, 53, 52, 47, 44, 42, 40, 39, 40, 36, 23, 19, -22, 23, 25, 24, 23, 23, 22, 23, 23, 23, 22, 21, 21, 21, 21, 21, 20, 20, 21, 22, 22, 27, 28, 31, 29, -28, 26, 27, 26, 24, 24, 23, 27, 25, 24, -5, -2, 2, 0, 0, -1, 4, 2, -6, -7, -6, 6, -3, -3, -3, --3, -2, 2, -2, -3, -4, -5, -5, -1, -10, -11, -6, -9, -8, -10, -6, -6, -12, -4, -3, -7, -4, -6, 3, -2, -0, -1, 15, 13, -4, -11, -7, 20, -4, -13, -13, -12, -4, 12, 8, 6, 1, -2, -7, 1, -21, -24, -9, -21, -22, --26, -6, -3, -21, -3, -5, -17, -9, 2, 22, 12, 20, 14, 40, 34, 0, -16, -16, 40, 2, 0, -4, -2, 4, 27, -12, 5, -2, -7, -16, 1, -45, -41, -22, -35, -30, -45, -22, -21, -42, -3, 1, -23, -7, -16, 3, -6, -8, -9, 54, -60, 10, -23, -6, 67, 4, -41, -49, -37, 2, 54, 47, 35, 23, 4, -12, -14, -44, -23, -7, -1, 3, 7, -1, -1, --22, -6, -5, -53, -33, 92, 108, 162, 180, 172, 49, -5, 36, -16, -43, -50, 22, 111, 186, 91, 5, -54, -105, -112, -91, --89, -59, -17, 36, 19, -1, 4, -2, -1, 0, 4, 3, 17, 49, 73, 81, -37, 15, -3, -45, -69, -142, -126, 0, 11, -59, 100, -55, -148, -139, -79, -10, 51, 55, 31, -10, -23, -16, 6, -12, -7, -1, -1, 0, 1, 0, -2, -1, -9, -9, -11, -26, 83, 176, 64, 47, 94, 157, 155, 130, 8, -70, -111, 59, 143, 134, 39, -17, -21, -31, -11, 18, 20, 12, -5, -6, 4, 1, 1, 0, 0, 0, 1, 0, 6, 2, -48, 12, -103, -31, -156, -182, -208, -195, -77, 136, 133, 95, -30, -26, --49, -50, -54, -37, -13, 12, 32, 47, 42, 26, -3, -6, -3, -1, -1, -1, 0, 0, -1, -1, -1, -34, -182, -182, 225, -179, 55, -6, 3, -17, -47, -75, -89, -77, -57, -46, -27, 9, 20, 30, 35, 37, 46, 56, 67, 64, 35, 14, 1, 2, -2, 1, 1, 0, 1, 3, 0, 36, 79, 207, -14, 9, 16, 4, -14, -32, -32, -33, -12, -9, -14, -12, -14, -18, -16, --18, -25, -26, -22, -20, -16, -3, 10, 6, 0, -6, -4, -3, -1, 0, 0, -5, -13, -18, -25, -18, -50, -61, -59, -55, --51, -35, -25, -18, -4, 13, 31, 40, 49, 57, 46, 36, 26, 20, 14, 4, 12, 19, 25, 20, 19, 13, 9, 1, 1, --8, -14, -24, -28, -34, -39, -46, 24, 14, 16, 18, 18, 21, 24, 27, 29, 27, 24, 23, 22, 22, 21, 23, 24, 24, -26, 24, 24, 33, 39, 45, 51, 59, 54, 49, 46, 39, 35, 32, 29, 27, 26, 21, 22, 20, 23, 24, 26, 26, 26, -27, 27, 28, 29, 30, 31, 31, 31, 30, 30, 30, 29, 30, 28, 27, 24, 32, 31, 32, 29, 29, 27, 26, 24, 22, -23, 23, 22, 22, 33, -8, -4, -2, -3, -2, -4, 1, -1, -7, -9, -8, 1, -5, -5, -6, -7, -7, -2, -5, -6, --8, -7, -6, -1, -13, -13, -5, -9, -8, -8, -5, -5, -10, -5, -6, -7, -5, -5, 0, -3, -3, -7, 10, 10, -3, --11, -9, 12, -5, -14, -18, -23, -16, 3, 1, -1, -6, -5, -10, 0, -24, -26, -7, -26, -28, -25, -9, -5, -16, -5, --6, -16, -10, 1, 18, 10, 17, 7, 35, 31, 6, -13, -16, 28, 4, 1, -7, -16, -12, 17, 4, -2, -10, -11, -18, -1, -46, -41, -14, -31, -24, -28, -14, -15, -27, -4, -2, -21, -9, -11, 3, -5, -11, -21, 42, 55, 20, -17, -8, 46, -7, -36, -58, -68, -34, 30, 28, 19, 6, -6, -18, -12, -39, -13, 0, 3, 8, 7, 3, 2, -6, -3, -3, -40, -28, -80, 83, 142, 169, 174, 51, -2, 38, -10, -30, -29, 31, 120, 200, 127, 44, -23, -84, -96, -76, -73, -39, 2, 28, 10, --1, 0, -4, -3, -2, 1, 1, 5, 29, 50, 63, -20, 26, -2, -44, -71, -140, -133, -21, -2, 57, 119, -27, -128, -143, --88, -20, 38, 41, 18, -21, -23, -12, 3, -10, -4, 0, 0, 1, 1, 1, 0, 0, -5, -2, 6, -19, 110, 172, 72, -36, 35, 143, 158, 121, 37, -50, -131, 26, 123, 155, 56, -4, -13, -22, -2, 28, 26, 15, 1, 6, 2, 0, 0, -1, --1, -1, 0, 0, 3, 7, -35, 23, -110, -178, -196, -174, -191, -206, -119, 67, 131, 118, -24, -26, -60, -65, -67, -46, -25, --2, 15, 31, 32, 13, -10, -4, -1, 0, 0, 1, 1, 1, 1, -1, 1, -20, -140, -125, 218, 182, 40, -37, -19, -30, --42, -60, -79, -75, -61, -52, -32, 2, 15, 25, 34, 43, 55, 64, 73, 60, 27, 8, -1, 1, 0, 0, -1, -1, -1, -1, -3, 33, 66, 180, 0, 22, 25, 19, 5, -13, -20, -30, -19, -20, -26, -26, -32, -38, -34, -30, -28, -23, -17, -13, --6, 6, 13, 5, 0, -2, 0, 1, 2, 4, 3, 2, -4, -6, -12, -2, -53, -58, -53, -49, -44, -34, -28, -25, -13, -1, 15, 28, 40, 52, 43, 34, 25, 21, 17, 11, 15, 18, 21, 13, 10, 2, 0, -7, -6, -13, -17, -25, -32, -40, --46, -51, 8, -3, 2, 6, 9, 13, 19, 24, 28, 29, 30, 30, 30, 33, 32, 33, 34, 34, 35, 34, 32, 39, 43, -46, 50, 53, 47, 41, 36, 29, 24, 22, 18, 17, 15, 8, 24, 21, 25, 26, 29, 30, 30, 31, 32, 34, 36, 38, -39, 40, 40, 39, 39, 38, 38, 38, 36, 34, 32, 38, 37, 39, 36, 35, 33, 32, 30, 27, 26, 26, 24, 24, 42, --11, -7, -5, -6, -5, -8, -3, -3, -7, -10, -10, -4, -7, -8, -9, -12, -12, -6, -9, -9, -12, -10, -9, -4, -16, --16, -6, -12, -11, -8, -7, -7, -10, -8, -9, -9, -8, -7, -3, -5, -6, -13, 5, 7, -1, -12, -12, 3, -5, -14, --23, -33, -28, -7, -7, -7, -12, -10, -14, -3, -26, -28, -8, -32, -33, -25, -11, -7, -12, -8, -10, -17, -12, -1, 14, -8, 14, -2, 30, 30, 14, -10, -15, 13, 6, 3, -12, -30, -29, 5, -5, -8, -18, -16, -21, -1, -45, -38, -7, -25, --15, -13, -7, -9, -14, -5, -6, -21, -12, -11, 2, -3, -13, -34, 32, 51, 32, -10, -11, 22, 11, -27, -65, -96, -69, -3, 9, 6, -10, -15, -21, -11, -29, -4, 4, 5, 7, 5, 3, 3, 0, -1, -3, -30, -24, 63, 65, 127, 158, 178, -67, 17, 49, -1, -20, -12, 34, 119, 198, 150, 75, -2, -66, -82, -65, -59, -22, 14, 16, 3, -2, -2, -3, -2, -1, --1, 0, -1, 12, 29, 43, -13, 35, 21, -16, -45, -119, -128, -40, -14, 49, 120, -8, -110, -145, -98, -32, 24, 29, 10, --26, -19, -8, -1, -8, -2, 1, 1, 2, 1, 1, 0, 1, -3, -1, 4, -9, 127, 179, 103, 44, -5, 138, 171, 125, -70, -28, -144, -5, 98, 165, 75, 14, -3, -9, 6, 33, 25, 12, 3, 4, 1, 0, -1, -1, -1, -1, -1, 0, -2, -12, -31, 28, -111, -285, -195, -133, -160, -183, -133, 0, 128, 142, 1, -13, -60, -68, -72, -53, -35, -15, -2, 14, 16, 0, --12, -1, 0, 0, 1, 1, 1, 1, 1, 1, 0, -3, -93, -70, 193, 174, 26, -57, -39, -44, -39, -43, -68, -70, -58, --46, -26, 3, 15, 25, 36, 46, 58, 66, 70, 49, 17, 2, -1, 0, -1, -1, -2, -2, -3, 0, -6, 22, 55, 142, -16, 38, 37, 37, 24, 4, -12, -28, -27, -29, -34, -35, -40, -50, -42, -33, -27, -20, -12, -7, 2, 12, 14, 4, 0, -1, 2, 3, 3, 4, 5, 5, 2, 4, 0, 13, -48, -50, -43, -42, -37, -30, -25, -24, -14, -4, 7, 20, 34, 47, -40, 33, 26, 23, 21, 17, 15, 15, 14, 6, 1, -5, -6, -10, -8, -12, -16, -21, -29, -38, -44, -46, -6, -17, -11, --4, 1, 6, 13, 20, 26, 30, 32, 35, 36, 41, 39, 40, 40, 41, 41, 40, 38, 41, 42, 42, 42, 40, 33, 27, -22, 15, 10, 8, 5, 4, 2, -6, 24, 19, 24, 26, 28, 30, 31, 32, 34, 36, 38, 41, 43, 46, 45, 44, 44, -43, 42, 42, 41, 40, 39, 40, 40, 43, 41, 40, 37, 36, 34, 30, 28, 25, 26, 25, 45, -14, -10, -7, -7, -7, --11, -5, -6, -8, -12, -13, -10, -9, -10, -13, -16, -17, -11, -12, -13, -15, -14, -13, -7, -19, -18, -7, -14, -14, -10, --9, -9, -10, -11, -12, -12, -11, -9, -5, -5, -7, -17, 1, 3, 0, -14, -16, -9, -6, -14, -27, -41, -38, -17, -14, --12, -18, -14, -17, -6, -27, -30, -10, -35, -35, -22, -12, -7, -8, -10, -13, -17, -13, -2, 12, 11, 15, -6, 25, 26, -20, -10, -18, -7, 5, 3, -17, -42, -43, -8, -14, -14, -26, -21, -23, -4, -41, -31, -2, -14, -6, -5, -2, -4, -3, --5, -9, -18, -11, -8, 4, 4, -9, -39, 20, 42, 39, -9, -21, -10, 11, -19, -70, -117, -99, -26, -10, -8, -23, -22, --23, -10, -18, 4, 3, 4, 5, 2, 2, 1, 1, 1, -2, -21, -18, 55, 56, 114, 149, 182, 80, 33, 55, 6, -11, --2, 30, 106, 182, 167, 104, 18, -47, -68, -57, -47, -10, 17, 6, 1, -2, -2, -2, -1, -1, -1, -1, -1, 4, 16, -31, 6, 46, 32, 3, -31, -101, -119, -49, -16, 47, 114, 9, -88, -143, -108, -49, 4, 15, 4, -26, -12, -3, -3, -4, -0, 1, 1, 1, 1, 1, 0, 1, 0, -2, 4, 4, 141, 173, 96, 23, -54, 117, 172, 125, 102, -1, -141, -28, 74, -166, 97, 41, 12, 5, 12, 30, 18, 7, 3, 2, 0, -1, -1, -1, -1, 0, -1, 1, -4, 10, -19, 25, -117, -374, --191, -94, -123, -150, -139, -68, 107, 151, 34, -2, -59, -66, -73, -57, -43, -26, -17, -5, 0, -10, -8, 1, 0, 1, 1, -1, 1, 1, 0, 2, -1, 4, -47, -33, 136, 127, 0, -75, -64, -60, -40, -29, -57, -67, -59, -46, -26, -1, 12, 24, -40, 51, 61, 64, 61, 36, 8, -1, -1, -1, -2, -2, -2, -2, -3, 0, -6, 7, 42, 86, 30, 47, 43, 47, 33, -14, -7, -27, -35, -38, -41, -41, -46, -56, -44, -32, -22, -14, -5, 2, 10, 16, 13, 3, 1, 3, 3, 4, 3, 4, -4, 5, 5, 10, 10, 22, -43, -42, -36, -37, -32, -27, -24, -25, -17, -11, -5, 8, 21, 33, 29, 25, 20, 20, 20, -21, 16, 11, 8, 0, -4, -8, -7, -9, -7, -8, -10, -15, -23, -32, -40, -40, -19, -30, -22, -14, -8, -2, 5, 12, -19, 24, 29, 33, 36, 42, 40, 41, 41, 41, 41, 41, 40, 38, 35, 32, 30, 24, 17, 11, 6, 0, -5, -6, -9, --9, -12, -19, 19, 14, 18, 20, 22, 24, 26, 27, 29, 31, 34, 37, 39, 42, 41, 41, 40, 40, 39, 38, 39, 39, -41, 35, 37, 42, 40, 38, 36, 34, 32, 28, 24, 20, 24, 21, 41, -15, -11, -9, -9, -9, -13, -7, -7, -7, -12, --14, -14, -10, -10, -14, -18, -19, -14, -14, -14, -17, -15, -15, -10, -19, -18, -9, -17, -17, -12, -11, -10, -9, -12, -14, --14, -12, -10, -7, -7, -9, -20, -4, 1, 4, -12, -16, -17, -6, -12, -28, -44, -44, -25, -20, -16, -22, -17, -18, -7, --27, -30, -11, -33, -31, -17, -10, -6, -3, -11, -15, -15, -14, -2, 7, 8, 11, -13, 18, 23, 30, -4, -15, -21, 7, -6, -18, -47, -51, -20, -20, -17, -31, -23, -23, -7, -34, -21, 2, -6, 2, 0, 1, -2, 2, -4, -10, -16, -11, -6, -0, 2, -12, -47, 7, 35, 53, 0, -22, -34, 12, -8, -68, -124, -116, -50, -26, -18, -33, -27, -22, -8, -7, 7, 1, -2, 1, 0, 0, 0, 0, 1, 0, -14, -14, 42, 39, 84, 119, 166, 84, 45, 60, 20, 8, 19, 34, 96, 163, 175, -126, 35, -28, -53, -49, -36, 0, 15, 0, -1, -2, -1, -1, 0, 0, 0, 0, 0, 0, 5, 20, 13, 41, 38, 21, --7, -75, -101, -57, -14, 48, 112, 34, -53, -120, -105, -59, -11, 5, 2, -19, -4, 0, -4, -2, 1, 1, 1, 0, 0, -0, 0, 0, 1, -2, 2, 11, 130, 159, 100, 19, -70, 97, 161, 111, 113, 15, -130, -46, 49, 155, 116, 71, 31, 23, -22, 28, 10, 3, 3, 0, 0, -1, -1, 0, 0, 0, -1, 1, -3, 7, -12, 18, -122, -390, -152, -43, -75, -102, -125, --119, 71, 136, 58, 3, -59, -64, -73, -61, -49, -35, -30, -19, -13, -14, -3, 1, 0, 1, 1, 1, 0, 1, 0, 1, -0, 3, -15, -12, 68, 66, -16, -73, -73, -63, -37, -20, -48, -65, -61, -48, -28, -8, 4, 19, 39, 51, 60, 62, 52, -26, 2, -2, -1, -1, -1, -1, -1, -1, -1, -2, -1, -6, 28, 38, 39, 58, 52, 55, 40, 20, -4, -23, -39, -43, --47, -45, -49, -59, -43, -31, -21, -10, 1, 10, 17, 19, 10, 2, 2, 3, 3, 2, 1, 2, 3, 4, 4, 9, 15, -26, -34, -33, -28, -30, -27, -23, -21, -23, -18, -15, -12, -4, 5, 14, 13, 11, 10, 12, 12, 16, 9, 3, -1, -6, --8, -7, -6, -4, -3, -3, -5, -7, -15, -24, -32, -32, -29, -34, -26, -18, -12, -7, -1, 6, 12, 18, 24, 28, 31, -37, 36, 37, 37, 37, 37, 38, 37, 31, 27, 22, 18, 10, 5, -1, -5, -10, -14, -16, -18, -18, -21, -26, 13, 8, -12, 13, 15, 17, 19, 21, 22, 24, 26, 29, 32, 34, 34, 34, 33, 33, 33, 32, 33, 33, 36, 28, 30, 34, 32, -30, 28, 26, 24, 21, 17, 13, 18, 14, 33, -15, -12, -11, -9, -10, -14, -9, -8, -6, -12, -14, -17, -10, -10, -14, --18, -19, -16, -15, -15, -17, -16, -16, -12, -18, -18, -10, -18, -18, -12, -12, -11, -8, -13, -15, -15, -14, -12, -10, -7, --10, -22, -7, -1, 7, -10, -16, -23, -5, -9, -27, -42, -44, -30, -23, -18, -22, -18, -17, -9, -26, -29, -11, -27, -25, --12, -8, -5, 1, -11, -16, -14, -14, -5, 1, 6, 7, -16, 12, 18, 36, -1, -13, -33, 8, 8, -17, -45, -52, -28, --23, -19, -31, -23, -21, -10, -24, -10, 4, 1, 5, 2, 2, 0, 3, -2, -10, -15, -12, -9, -6, 2, -13, -49, -3, -27, 60, 5, -25, -55, 10, 0, -61, -118, -120, -68, -37, -24, -36, -28, -19, -6, 1, 6, -1, 0, -1, -1, 0, 0, --1, 1, 2, -9, -12, 32, 34, 66, 97, 156, 89, 54, 55, 31, 26, 36, 40, 88, 143, 176, 140, 51, -7, -35, -38, --24, 7, 8, -1, -2, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 12, 18, 41, 47, 41, 14, -50, -80, -58, -15, -38, 87, 41, -30, -102, -104, -73, -29, -7, -1, -10, 4, 1, -4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, --1, 12, 119, 145, 82, 1, -91, 63, 133, 95, 110, 22, -118, -66, 15, 120, 115, 87, 42, 34, 26, 22, 4, 0, 3, --1, 0, 0, 0, 0, 0, 0, 0, 0, -2, 3, -6, 12, -116, -367, -124, -13, -40, -58, -100, -139, 35, 112, 84, 11, --53, -60, -72, -64, -56, -45, -41, -32, -21, -13, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, 2, --7, -26, -55, -70, -54, -28, -10, -34, -53, -53, -42, -24, -12, 0, 15, 35, 46, 52, 53, 40, 15, -3, -1, -1, -1, -0, 0, 0, 0, 0, -2, 1, -8, 14, 2, 45, 60, 53, 55, 39, 22, -3, -19, -38, -43, -46, -44, -46, -52, -35, --23, -15, -4, 7, 17, 21, 18, 7, 2, 3, 2, 1, 1, 0, 0, 0, 1, 4, 4, 15, 27, -26, -24, -20, -22, --20, -18, -16, -18, -15, -15, -15, -11, -6, -2, 0, 0, 1, 4, 6, 10, 3, -3, -5, -8, -7, -3, -1, 0, 1, -1, 0, -1, -8, -14, -22, -23, -30, -32, -25, -19, -13, -9, -5, 1, 6, 12, 17, 21, 24, 29, 29, 30, 31, 32, -33, 35, 33, 24, 18, 13, 7, -1, -5, -8, -11, -14, -18, -20, -22, -22, -24, -27, 7, 3, 6, 7, 8, 10, 12, -13, 14, 16, 18, 20, 22, 25, 24, 24, 24, 24, 25, 24, 25, 25, 28, 20, 22, 25, 23, 21, 19, 17, 15, 12, -9, 6, 11, 8, 23, -14, -11, -10, -9, -9, -13, -8, -7, -4, -10, -13, -17, -10, -9, -13, -17, -18, -16, -14, -14, --15, -14, -14, -12, -15, -16, -11, -18, -18, -12, -12, -10, -6, -12, -13, -14, -13, -11, -10, -6, -8, -19, -7, -1, 9, --8, -15, -27, -6, -7, -24, -38, -41, -33, -24, -18, -21, -16, -14, -9, -24, -24, -8, -17, -14, -6, -4, -3, 4, -9, --15, -12, -12, -5, -2, 6, 7, -14, 8, 14, 39, 1, -12, -41, 5, 7, -16, -41, -48, -34, -25, -19, -29, -20, -18, --10, -11, 0, 3, 3, 5, 2, 2, 0, 1, 0, -6, -12, -10, -8, -7, 4, -7, -40, -7, 22, 63, 8, -27, -67, -4, 4, -53, -105, -113, -79, -46, -29, -37, -25, -14, -2, 4, 2, -2, -1, -2, -1, -1, 0, -1, 0, 3, -3, -9, -25, 27, 42, 68, 131, 80, 51, 42, 35, 34, 36, 34, 66, 110, 157, 136, 57, 9, -19, -26, -12, 8, 2, -2, -1, -1, 0, 1, 1, 0, 0, 0, -1, -1, 0, 8, 20, 30, 39, 44, 25, -30, -59, -53, -12, 30, 65, 42, -13, -83, --103, -87, -49, -23, -9, -5, 7, 1, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 6, 91, 118, 68, --2, -85, 38, 105, 80, 103, 33, -88, -63, -1, 93, 116, 103, 57, 45, 30, 16, -2, 0, 1, -1, 0, 0, 0, 0, -0, 0, 0, 0, -1, 2, -4, 5, -104, -304, -95, 1, -4, -20, -70, -134, 3, 84, 103, 26, -34, -47, -60, -57, -53, --45, -43, -38, -26, -7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, -44, -66, -18, -19, -46, -33, --16, -5, -25, -44, -45, -37, -21, -13, 0, 14, 32, 41, 46, 47, 30, 7, -4, -1, -1, 0, 0, 0, 1, 0, 1, -0, 1, -5, 4, -15, 45, 59, 49, 48, 33, 19, -3, -14, -34, -40, -44, -41, -40, -44, -26, -15, -9, 3, 13, 23, -24, 17, 4, 2, 1, 0, 0, -1, -1, -1, -1, -1, 2, 1, 10, 25, -17, -14, -12, -14, -14, -13, -12, -14, -13, --14, -16, -16, -15, -14, -11, -9, -7, -4, -2, 4, -3, -6, -6, -7, -3, 0, 0, 2, 2, 3, 2, 4, -1, -6, --11, -13, -28, -27, -22, -17, -12, -10, -7, -3, 1, 6, 10, 13, 16, 20, 21, 22, 23, 25, 26, 28, 27, 17, 10, -5, -1, -5, -7, -8, -10, -12, -15, -18, -21, -22, -24, -25, 1, -1, 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, -12, 14, 14, 15, 15, 15, 16, 15, 17, 17, 20, 12, 13, 14, 12, 10, 8, 6, 5, 3, 2, 0, 4, 2, 13, --14, -11, -11, -9, -9, -13, -10, -9, -4, -10, -13, -18, -10, -10, -13, -16, -17, -17, -14, -14, -14, -13, -13, -12, -14, --15, -12, -17, -16, -11, -10, -9, -4, -11, -12, -12, -12, -10, -12, -8, -9, -18, -10, -5, 7, -9, -16, -29, -8, -7, --22, -32, -36, -33, -24, -19, -19, -14, -11, -11, -20, -17, -5, -9, -8, -3, -2, -1, 3, -7, -14, -11, -11, -5, -8, -2, 2, -14, 1, 6, 34, -2, -15, -45, -1, 3, -16, -34, -42, -36, -26, -19, -25, -16, -14, -7, -2, 3, 3, 3, -3, 1, 1, 0, 0, 1, -2, -9, -9, -8, -13, -1, -9, -35, -14, 11, 55, 3, -32, -74, -4, 3, -44, -84, -97, --81, -50, -31, -33, -20, -8, 1, 2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 2, 1, -6, 17, 18, 21, 41, 103, -67, 44, 25, 36, 38, 32, 23, 41, 75, 127, 119, 58, 20, -5, -16, -3, 6, -1, -1, 0, 1, 1, 1, 0, 0, -0, 0, 0, 0, -1, 3, 16, 21, 38, 50, 39, -8, -37, -45, -8, 25, 50, 48, 8, -56, -88, -88, -58, -34, -15, --3, 5, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 65, 96, 53, -7, -80, 11, 71, 66, -87, 35, -63, -61, -16, 62, 104, 106, 68, 53, 32, 13, -3, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, -1, -3, -79, -228, -80, -4, 18, 3, -46, -112, -24, 49, 102, 34, -18, -38, -49, -50, -50, -43, -40, -38, -23, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, -65, -102, -3, 17, -13, -6, 1, 1, -16, -35, -35, --34, -22, -17, -4, 9, 25, 34, 38, 40, 23, 2, -3, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, -2, 3, -16, -43, 49, 37, 32, 22, 11, -5, -11, -28, -34, -38, -35, -34, -34, -17, -7, -2, 9, 17, 25, 24, 13, 1, 2, 0, -0, -1, -1, -1, -1, -1, -2, 0, 0, 2, 19, -8, -4, -4, -6, -8, -8, -8, -10, -11, -14, -17, -18, -19, -20, --17, -14, -11, -9, -8, -3, -7, -8, -5, -3, 0, 1, 2, 2, 3, 3, 3, 4, 3, -1, -3, -4, -23, -20, -17, --14, -11, -10, -8, -5, -3, 0, 3, 5, 7, 10, 11, 13, 14, 16, 17, 20, 19, 9, 3, -2, -4, -5, -6, -7, --8, -9, -9, -12, -15, -18, -20, -20, -3, -4, -4, -3, -3, -2, -1, 0, 0, 1, 1, 2, 3, 5, 5, 6, 6, -7, 7, 7, 8, 9, 12, 4, 5, 4, 3, 1, -1, -2, -4, -4, -4, -5, -2, -3, 4, -12, -11, -11, -9, -8, --11, -9, -8, -3, -9, -11, -16, -9, -9, -11, -13, -14, -15, -12, -12, -11, -11, -11, -12, -12, -14, -12, -15, -14, -10, --10, -8, -4, -11, -11, -12, -11, -10, -12, -7, -8, -14, -9, -5, 7, -8, -15, -27, -8, -7, -18, -25, -29, -30, -22, --17, -16, -11, -8, -12, -13, -8, -1, -2, -2, 0, 0, 0, 3, -4, -11, -10, -9, -7, -12, -1, -1, -11, -2, 2, -29, -2, -13, -42, -4, 1, -14, -24, -32, -33, -24, -17, -18, -10, -9, -2, 3, 3, 1, 1, 1, 0, 0, 0, 0, -2, 2, -4, -8, -8, -17, -3, -8, -26, -14, 6, 46, 1, -30, -69, -9, 2, -34, -62, -76, -74, -48, -30, -26, -13, --2, 2, -1, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, 2, -2, 10, 15, 10, 24, 77, 53, 35, 10, 35, 41, -28, 16, 24, 50, 99, 100, 58, 31, 8, -4, 2, 3, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 10, 17, 30, 45, 40, 4, -21, -36, -8, 16, 34, 46, 19, -35, -71, -81, -62, -41, -22, -4, 2, -2, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -5, 39, 67, 36, -8, -65, -10, 39, 49, 67, 33, -40, -54, -26, -35, 83, 96, 69, 53, 32, 10, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -8, -50, -155, --63, -10, 38, 14, -28, -81, -38, 20, 91, 40, 0, -28, -36, -40, -43, -37, -34, -33, -16, 2, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, 1, -3, 13, -61, -106, 19, 48, 21, 20, 17, 7, -9, -27, -27, -30, -21, -18, -5, 6, -17, 25, 29, 33, 16, -3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -2, 35, 38, 22, 14, 7, -1, -9, -9, -21, -25, -29, -27, -26, -23, -9, 0, 3, 12, 18, 24, 21, 7, 0, 0, -1, 0, -1, 0, -1, -1, --1, -1, -1, -1, -2, 8, -1, 4, 4, 1, -2, -3, -4, -6, -9, -12, -17, -18, -20, -22, -19, -17, -14, -12, -11, --9, -10, -7, -2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 1, 2, -17, -15, -13, -12, -11, -10, -9, -7, --6, -4, -2, -1, 0, 1, 3, 4, 6, 7, 8, 11, 11, 2, -2, -4, -4, -3, -2, -3, -3, -3, -3, -5, -8, --12, -14, -15, -6, -6, -6, -6, -5, -5, -4, -4, -4, -4, -4, -3, -3, -2, -2, -1, -1, 0, 1, 1, 2, 3, -4, -1, -2, -3, -4, -5, -6, -7, -8, -8, -8, -8, -5, -6, -3, -10, -9, -9, -7, -7, -8, -8, -7, -3, -8, --9, -14, -8, -8, -9, -10, -11, -12, -10, -10, -9, -8, -8, -11, -10, -10, -9, -10, -9, -7, -7, -5, -2, -8, -9, --10, -9, -8, -11, -6, -7, -10, -8, -5, 4, -8, -13, -23, -8, -7, -14, -18, -21, -24, -19, -14, -12, -7, -6, -8, --4, -2, 1, 0, 0, 1, 0, 0, 1, -1, -5, -8, -7, -6, -13, -2, -2, -6, -3, -1, 21, -4, -12, -35, -8, --2, -11, -16, -22, -28, -20, -14, -12, -6, -3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, -4, -5, --17, -3, -5, -14, -11, 2, 34, -3, -28, -57, -13, -2, -25, -41, -54, -62, -42, -27, -19, -6, 1, 0, -1, 0, 0, -0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 6, 10, -1, 9, 49, 35, 23, -4, 30, 38, 21, 10, 11, 30, 68, -75, 52, 34, 16, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 3, 13, 22, 39, -37, 13, -7, -27, -6, 10, 22, 39, 23, -20, -54, -69, -60, -44, -26, -7, 0, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, -1, 2, -3, 16, 43, 22, -9, -50, -23, 13, 33, 47, 28, -22, -44, -30, 14, 59, 76, 62, 47, -29, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -6, -19, -98, -51, -16, 45, 17, -17, --53, -43, -1, 69, 41, 14, -17, -23, -29, -33, -29, -25, -25, -7, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, --1, 1, -4, 9, -36, -85, 36, 64, 47, 39, 30, 14, -3, -18, -19, -25, -19, -17, -6, 2, 9, 16, 20, 25, 9, --4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 7, 24, 24, 7, -2, -6, -10, -14, -11, -16, -18, --20, -19, -18, -14, -3, 3, 6, 13, 16, 20, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, --2, 5, 10, 9, 7, 4, 1, -1, -4, -8, -12, -16, -17, -18, -20, -17, -15, -13, -12, -12, -10, -9, -4, 1, 1, -1, 0, 0, 0, 1, 1, 1, 0, 1, 2, 2, 4, -13, -10, -10, -10, -10, -9, -9, -9, -8, -7, -6, -6, -6, --6, -4, -3, -2, 0, 1, 3, 3, -3, -4, -2, -1, 0, 0, 0, 0, 0, 0, -1, -1, -5, -8, -9, -7, -6, --7, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, -7, -6, -6, -5, -5, -4, -4, -3, -2, -2, -5, -5, -6, -6, --7, -7, -8, -8, -9, -9, -8, -8, -7, -6, -7, -7, -7, -6, -5, -6, -6, -5, -3, -6, -7, -10, -6, -6, -7, --7, -7, -9, -8, -7, -6, -6, -6, -10, -7, -6, -5, -6, -5, -4, -4, -4, -2, -5, -7, -9, -7, -7, -8, -5, --5, -6, -6, -4, 2, -6, -10, -16, -7, -6, -10, -11, -14, -17, -14, -11, -8, -5, -4, -3, 0, 1, 2, 1, 1, -1, 1, 1, 1, 1, 0, -3, -5, -5, -11, -3, -2, -3, -3, -3, 13, -4, -10, -24, -8, -4, -8, -10, -14, -20, --14, -10, -7, -2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, -1, -15, -4, -4, -7, -9, -0, 21, -4, -21, -40, -12, -4, -16, -24, -34, -44, -32, -21, -11, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, 1, 1, 5, -4, 2, 28, 22, 15, -8, 23, 30, 14, 5, 3, 15, 40, 49, 41, 31, 18, 10, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 10, 16, 28, 29, 16, 1, -18, -5, -4, 13, 29, 20, -9, -34, -49, -47, -37, -24, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 1, 2, 22, 11, -7, -33, -26, -3, 20, 29, 20, -8, -31, -25, 3, 36, 52, 47, 36, 23, 7, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 2, -55, -36, -15, 41, 16, -7, -28, -36, -11, 45, 35, -21, -6, -12, -17, -21, -19, -16, -15, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -9, --49, 40, 60, 54, 44, 33, 18, 3, -10, -12, -19, -16, -14, -6, -1, 3, 10, 12, 17, 1, -2, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, -1, 4, 10, 13, -3, -11, -13, -14, -15, -11, -12, -11, -12, -11, -10, -7, 0, -5, 7, 12, 12, 16, 7, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -3, 6, 12, 10, 10, -6, 3, 1, -2, -6, -9, -13, -13, -13, -15, -13, -12, -10, -10, -9, -9, -6, 0, 1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 1, 1, -7, -7, -7, -8, -8, -8, -8, -8, -7, -7, -7, -7, -7, -8, -7, -6, -5, -4, --3, -2, -2, -4, -2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, -3, -3, -6, -5, -6, -6, -6, -6, -6, --6, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, -6, -5, -5, -5, -5, -6, -5, -5, -5, -5, -5, -5, -6, -6, --6, -6, -8, -7, -7, -5, -5, -5, -4, -4, -4, -4, -4, -3, -4, -5, -6, -5, -4, -5, -5, -5, -6, -5, -5, --4, -4, -4, -6, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -6, -5, -5, -6, -4, -4, -4, -4, -4, 0, --5, -7, -10, -6, -5, -6, -7, -8, -11, -9, -7, -5, -3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -9, -2, -2, -1, -3, -3, 5, -4, -7, -14, -7, -4, -6, -6, -8, -12, -9, -6, -4, 1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 2, -10, -3, -2, -1, -5, -2, 9, -5, -15, -24, --10, -5, -10, -12, -18, -26, -20, -13, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -0, 2, -4, -2, 10, 9, 6, -10, 12, 17, 7, 2, -1, 6, 18, 25, 26, 21, 14, 8, -1, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, 6, 10, 16, 18, 13, 5, -10, -4, 2, 7, 19, 15, -1, --17, -28, -30, -25, -18, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 4, --5, -18, -21, -9, 9, 13, 10, -2, -19, -19, -4, 15, 27, 28, 22, 15, 5, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 5, -22, -23, -10, 24, 10, -2, -12, -23, -11, 21, 24, 18, 1, -4, -9, -11, --10, -9, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, -13, 29, 41, 42, 34, -26, 16, 5, -4, -7, -12, -11, -10, -5, -2, 0, 4, 6, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 1, 4, -8, -13, -13, -14, -13, -10, -8, -6, -6, -5, -5, -2, 1, 4, 5, 8, 7, 9, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 11, 8, 8, 5, 3, 1, -1, -4, --6, -8, -8, -8, -8, -8, -7, -6, -6, -5, -6, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -2, -4, -4, -5, -5, -5, -6, -6, -6, -5, -5, -6, -6, -6, -6, -6, -5, -5, -4, -4, -4, 0, 1, -1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -5, -4, -4, -4, -4, -4, -5, -5, -5, -5, -5, -6, --6, -6, -6, -5, -5, -5, -5, -5, -5, -5, -5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -5, -5, -6, --1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -2, 0, -0, 1, 1, 0, 0, 0, 0, 0, 0, 0, -2, -2, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -2, -1, -1, --1, -1, -1, -2, -2, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, -0, 0, 0, -1, -1, 1, -1, -1, -2, -1, -1, -1, -1, -1, -2, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 0, 0, -1, -1, 2, -1, -3, -4, -2, -1, -1, -1, -3, --4, -4, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 2, -1, 4, 5, 2, 1, 0, 1, 3, 5, 7, 5, 5, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, -1, 1, 3, 3, 4, 3, 2, -2, -1, 0, 1, 4, 3, 0, -3, -5, -6, -5, -4, --2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -3, -4, -2, 3, -3, 3, 1, -3, -4, -1, 3, 5, 6, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 1, -3, -5, -2, 6, 3, 1, -2, -5, -3, 4, 6, 5, 1, 0, -1, -1, -2, -1, -1, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 11, 9, 7, 5, 2, 0, -1, --2, -2, -2, -1, -1, 0, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -2, -3, -3, -3, -3, -2, -2, -1, -1, -1, -1, 0, 1, 1, 2, 2, 2, 2, -1, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 2, 2, 2, 1, 1, 0, -1, -1, -2, -2, -2, -2, --1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, -2, -1, -1, -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, -2, -1, -2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, -1, -1, -1, -}; -#else const uint32_t defaultHRIR_rom_AlphaL32[470 * 86] = { 0x3e806800,0x3d6b8000,0x3e9b2000,0x3e6ec000,0x3e80f800,0x3e7fc000,0x3e872800,0x3e89e000,0x3e8c0000,0x3e879800,0x3e84b000,0x3e815000,0x3e7d1000,0x3e78a000,0x3e767000,0x3e743000,0x3e720000,0x3e70d000,0x3e6dc000,0x3e5e0000,0x3e8d7800,0x3d3ec000,0xbd3ec000,0xbe2f5000,0x3dc2a000, 0xbd25c000,0xbe208000,0xbe25d000,0xbe201000,0xbe03f000,0xbe21c000,0xbe292000,0xbe21f000,0xbd210000,0x3e037000,0xbe231000,0xbd6c8000,0xbdafc000,0x3e88c800,0x3e951000,0x3e95b000,0x3e9c8000,0x3eb08800,0x3eb98000,0x3ebae800,0x3eb0a000,0x3ea5f800,0x3e9aa000,0x3e91d000,0x3e8c6000, @@ -13243,1628 +6645,6 @@ const uint32_t defaultHRIR_rom_AlphaL32[470 * 86] = { 0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000, 0xb8800000,0xb8800000,0xb8800000,0xb9000000,0xb8800000,0xb9000000,0x38800000,0x00000000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x00000000,0x38800000,0xb8800000,0xb8800000,0xb8800000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_AlphaR32[470 * 86] = { -4109, 3824, 4994, 960, -958, -2630, 2083, -646, -2577, -2692, -2592, -2122, -2566, -2655, -2563, -660, 1551, -2794, -741, 773, 4530, 3553, 3803, 3853, 3872, -3907, 3943, 3978, 4049, 4138, 4246, 4339, 4480, 4412, 4324, 4094, 4122, 4780, 4288, -1441, 3195, 995, 1132, 2042, 1718, 2727, 1996, 969, 1815, 2013, -1779, 849, 1408, 1500, 1861, -923, 3407, 3986, 3908, 4198, 4212, 4333, 4424, 4492, 4666, 4948, 5311, 5651, 5981, 5935, 5652, 5003, 4796, 5601, 3974, -1031, 1847, 347, 769, 668, 664, 0, 1279, -355, 1614, -73, 973, 47, 860, 841, 824, 550, 2249, 3934, 3672, 4306, 4326, 4561, 4764, 4938, -5315, 5849, 6414, 7063, 7682, 7540, 6990, 5789, 5279, 6196, 3113, 362, 1721, 907, 577, 749, 466, 436, 186, 583, 53, 77, 367, 233, 547, --276, 815, -80, 1755, 3452, 3529, 4234, 4242, 4560, 4849, 5000, 5520, 6389, 7419, 8539, 9650, 9560, 8600, 6732, 5621, 8414, 4662, 1045, 1316, 395, -83, 782, 308, 362, 290, 321, 313, 139, -61, 130, 488, 159, 949, 220, 1948, 4098, 4059, 5462, 5985, 6616, 6829, 7937, 8605, 8687, 10088, -10483, 10307, 9901, 9158, 8335, 7497, 8605, 3299, -92, 1727, 1862, 903, 1276, 367, 446, -16, 249, 217, 179, 416, 514, 618, 173, 919, -38, -2202, 4656, 4802, 6469, 6758, 7371, 7836, 7536, 7580, 7926, 8947, 9712, 10238, 10743, 10416, 9711, 7969, 12591, 4452, -1531, 1863, -767, 1396, -613, 640, -71, 679, 309, 183, 346, 365, 455, 1045, 281, 1228, 522, 2075, 5035, 4849, 6453, 7967, 9719, 11297, 11704, 11304, 10094, 8723, 9106, 10726, 12179, -13390, 15739, 12960, 15496, 6495, -79, 3755, -183, 1892, 679, 512, 37, 532, 648, 435, 240, 39, 556, 379, 433, 1503, -449, 2439, 4652, 4567, -5858, 6842, 7935, 8770, 9639, 10122, 10308, 10575, 10507, 10238, 11164, 11856, 13860, 13413, 12863, 8541, 273, 1481, 2114, 193, 1497, 1432, 149, 491, 13, -410, 583, 475, 460, 265, 874, 1099, -500, 2811, 4466, 3809, 4348, 4997, 6254, 7757, 8709, 9520, 10187, 9046, 8582, 9146, 9002, 9635, 11438, 11437, -8249, 6092, -318, 1198, 251, 121, 968, 477, 963, 707, 1329, 188, 312, 578, 897, 933, 1404, 1242, 493, 2458, 4491, 4103, 4585, 5228, 5771, -5933, 5955, 5662, 5380, 5669, 6380, 7080, 6990, 6906, 7000, 6950, 5801, 3507, 1252, 2645, 934, 1189, 760, 657, -270, 1197, -730, 1795, -346, 825, --265, 743, 305, 799, 315, 2463, 3995, 3041, 3378, 3531, 3906, 4109, 4951, 5657, 6336, 6484, 6525, 6632, 6447, 6157, 6078, 5192, 4475, 4160, -1893, -2810, 649, 926, 2115, 1812, 3101, 2346, 1041, 2072, 2517, 2216, 1058, 1719, 1879, 2041, -1077, 3172, 3439, 3236, 3387, 3302, 3332, 3264, 3780, 4087, -4441, 4714, 5035, 5363, 5113, 4861, 4752, 4401, 4219, 5430, 851, -1142, -2872, 2220, -971, -2995, -3197, -3144, -2548, -3113, -3290, -3159, -1008, 1563, -3356, --1132, 597, 5101, 3965, 4152, 4147, 4143, 4154, 4094, 4224, 4310, 4403, 4540, 4656, 4844, 4712, 4653, 4572, 4536, 4970, 7636, 7214, 6887, 8390, 8091, -5927, 7861, 7759, 6144, 6079, 5934, 5683, 5657, 5658, 5515, 7559, 7686, 5439, 7595, 7884, 6501, 6686, 6846, 6927, 7009, 7095, 7184, 7317, 7427, 7532, -7643, 7769, 7985, 7901, 7826, 7651, 7448, 8298, 8580, 8263, 7471, 7290, 6819, 6621, 6234, 5998, 6302, 6343, 6321, 5922, 6034, 5807, 5984, 6559, 6261, -6500, 6911, 6638, 7113, 7338, 7569, 7816, 8111, 8481, 8821, 9121, 9420, 9845, 10466, 10450, 10219, 9588, 9090, 8596, 8617, 8343, 7115, 6057, 5473, 4992, -4642, 4190, 3803, 3948, 3836, 3478, 3932, 3783, 4201, 4708, 4682, 5529, 5772, 5952, 6757, 7332, 7776, 8285, 8807, 9513, 10067, 10678, 11288, 12136, 13220, -13058, 12664, 11304, 10138, 9104, 9106, 7618, 5925, 4626, 3940, 3209, 2243, 1663, 1248, 1150, 745, 823, 961, 1128, 1772, 1832, 2600, 3267, 4205, 4854, -5721, 6616, 7237, 7969, 8735, 9758, 10769, 11581, 12484, 14002, 16095, 16252, 15509, 13167, 11182, 11275, 10245, 10618, 7573, 5626, 4653, 3889, 2938, 2340, 1733, -1710, 1227, 1068, 950, 1563, 2154, 2550, 3513, 4710, 6027, 8045, 9862, 11478, 12414, 13600, 15146, 15507, 16218, 16697, 19435, 19961, 19068, 17991, 17139, 16724, -14441, 15313, 12888, 11529, 9145, 7989, 5732, 4353, 3179, 2333, 1696, 1636, 1524, 1454, 1791, 2090, 2698, 3952, 4955, 5900, 7229, 8592, 9736, 11036, 12667, -14670, 16901, 18861, 20253, 20634, 22364, 22825, 21684, 20940, 20005, 19404, 17985, 15224, 16540, 13418, 9547, 8828, 7016, 4590, 3622, 2434, 2753, 3124, 2110, 2237, -2674, 2995, 4139, 4887, 5186, 6331, 6754, 7300, 8928, 10557, 10894, 11881, 13356, 15613, 18294, 21050, 21621, 20508, 18800, 16793, 15769, 13723, 15732, 9936, 14939, -15013, 9332, 7357, 6119, 4395, 3521, 2664, 3127, 5369, 2939, 2085, 2760, 3750, 4074, 5383, 6358, 6655, 7148, 6966, 7962, 9177, 11495, 13073, 14159, 15783, -16902, 17558, 19568, 20567, 21175, 17576, 14515, 10397, 12477, 12369, 13303, 14558, 10550, 8093, 6466, 5654, 5656, 4230, 4101, 3720, 3176, 3205, 3607, 4357, 4772, -5865, 6493, 7194, 9447, 9505, 9779, 8928, 10011, 11149, 13009, 14234, 15713, 17142, 18551, 19331, 20236, 18928, 17906, 15392, 15675, 14182, 13613, 13359, 10971, 8166, -7618, 6456, 5300, 5050, 4669, 5267, 3572, 3586, 4080, 4987, 6235, 7611, 7980, 8573, 10024, 10772, 10649, 9564, 10020, 10896, 12344, 14017, 15894, 17695, 18501, -18760, 18494, 18420, 17849, 16130, 15872, 14061, 13393, 11341, 10492, 8733, 7706, 6729, 5556, 5223, 5906, 5286, 6822, 4779, 6333, 5300, 6865, 7193, 7961, 8664, -9822, 10465, 10607, 11095, 11754, 12203, 12536, 13392, 14031, 14695, 15345, 16028, 16729, 16356, 16080, 15680, 14927, 12507, 12979, 8919, 11522, 10141, 9707, 10113, 9406, -10123, 10369, 9602, 10349, 9818, 9792, 8959, 9486, 10129, 9625, 7554, 11275, 11120, 11496, 11708, 12002, 12374, 12731, 13047, 13312, 13564, 13734, 13853, 14134, 13698, -13417, 13125, 12919, 11660, 12153, 11942, 10423, 6301, 12273, 10405, 6684, 6585, 6456, 6527, 6222, 6277, 6179, 10277, 11758, 5629, 10215, 11468, 11631, 11152, 11485, -11529, 11615, 11647, 11696, 11763, 11844, 11929, 12044, 12146, 12298, 12174, 12110, 11985, 11990, 12990, -810, -738, -1700, 601, 2751, 6652, -470, 2388, 5969, 6087, -6062, 5921, 6290, 6414, 6482, 2470, 91, 7017, 2770, 975, -1265, -461, -791, -866, -874, -867, -816, -817, -854, -907, -1069, -1231, -1564, -1365, -1286, --1090, -1110, -1276, -1297, 4186, -453, 1375, 1565, 489, 805, -325, -8, 1028, 195, 383, 446, 1822, 1390, 853, 1169, 3938, -330, -394, -638, -946, --983, -964, -788, -718, -801, -1014, -1496, -2101, -3076, -2796, -2546, -1878, -1654, -1421, -375, 1021, 454, 1861, 1701, 1603, 1149, 1686, 813, 2231, 678, -2366, 1122, 2247, 1571, 1708, 2229, 2092, 1054, -156, -400, -1125, -1168, -1093, -719, -588, -621, -1014, -1841, -3207, -5213, -4431, -3931, -2302, -1610, -1115, -982, 2431, 849, 1266, 1702, 1377, 1161, 790, 891, 828, 1208, 1117, 1064, 1384, 1433, 2458, 2032, 2760, 1766, 585, 34, -866, -879, -731, -36, -451, 246, -269, -1693, -4205, -7898, -7179, -6083, -3257, -1564, -4774, -2971, -535, 1058, 1506, 1404, 414, 859, 502, 606, 955, 1176, 1401, 1461, 1496, -1546, 2244, 2434, 3243, 1666, -703, -1335, -3332, -3625, -3819, -3506, -3659, -3372, -1780, -6798, -7777, -7330, -6279, -5864, -5889, -4765, -10263, -974, 3569, 2174, -1367, 2563, 2029, 2920, 2027, 1953, 2021, 1058, 743, 507, 752, 1111, 1907, 1916, 3521, 1549, -794, -1622, -4727, -6152, -7968, -9340, -8757, -7951, -6447, --8359, -8821, -8691, -7421, -7376, -8853, -10072, -9866, -5528, 2826, 1146, 2724, 794, 3498, 2067, 2310, 1879, 3717, 2949, 2826, 2493, 1984, 1229, 2890, 2268, -2262, 1396, -1495, -2936, -6060, -7308, -9168, -11076, -12503, -12695, -11298, -7197, -4525, -4174, -1021, -1430, -2877, -6806, -2305, -3691, -101, 749, 3704, 1446, 2652, -2306, 2461, 2650, 5039, 2141, 1579, 2634, 2170, 3112, 3240, 2196, 3757, 882, -989, -1679, -3622, -6104, -8036, -8924, -9966, -9454, -7665, -7020, -5310, -4414, -322, 4330, 9378, 828, -1819, -4195, 45, 931, 1478, 2969, 1945, 1193, 3194, 2983, 4806, 3090, 2724, 3166, 3253, 4046, 3219, 3770, 5728, 830, -1496, --1481, -1557, -2468, -4089, -6372, -7308, -8058, -8134, -6589, -4273, -3314, 548, 1161, 1318, -1171, -2060, -1366, 3514, 2433, 4002, 3314, 2510, 2832, 3152, 3823, -2320, 4314, 3834, 3479, 3028, 2906, 2373, 3111, 4499, 1193, -1129, -370, -678, -1304, -2254, -3132, -4078, -4459, -4061, -3870, -3306, -2015, -221, 616, 1394, --364, -255, 1622, 5141, 3096, 5228, 4483, 4760, 4425, 5581, 3180, 5535, 1861, 5740, 3336, 5704, 3810, 4478, 3911, 4530, 1726, 42, 1715, 1628, 1104, -437, 99, -778, -1444, -2250, -2173, -2038, -1939, -1251, -231, 1048, 1138, 613, 280, 10690, 1852, 5120, 4782, 2400, 2699, 523, 1230, 3200, 1256, 1056, -1183, 3857, 3165, 2700, 3335, 9377, 1504, 1824, 2245, 2430, 2767, 2985, 3266, 2515, 2068, 1596, 1333, 994, 603, 716, 671, 531, 678, -53, -2139, -3817, 7608, 13336, 1090, 6691, 12334, 12679, 12603, 11866, 12693, 12866, 12717, 6562, 1980, 13909, 7206, 3964, -1750, 264, -55, 85, 241, 399, 706, 480, -356, 213, -39, -256, -511, -505, -527, -530, -578, -1008, 1875, 1879, 2639, 762, -556, -2054, 1299, -362, -1789, -1860, -1784, -1513, -1722, -1772, -1794, --321, 986, -1945, -419, 556, 2189, 1729, 1822, 1760, 1681, 1600, 1537, 1414, 1375, 1370, 1461, 1600, 1828, 1886, 1906, 1797, 1985, 2609, 2545, -995, -2064, 687, 611, 1140, 1069, 1648, 1417, 993, 1378, 1376, 1168, 703, 908, 1058, 1143, -206, 2033, 2232, 2184, 2090, 1941, 1761, 1583, 1208, 1050, -1055, 1177, 1438, 1925, 2124, 2351, 2199, 2500, 3860, 3241, 1904, 2118, 816, 891, 749, 1042, 595, 1283, 821, 1632, 768, 978, 788, 1118, 904, -997, 1077, 1823, 2430, 2219, 1975, 1594, 1098, 707, 26, -260, -230, -14, 883, 2156, 2524, 2771, 2335, 3065, 4448, 2895, 1902, 3056, 1804, 1030, -1014, 1216, 1155, 1154, 1558, 1093, 1156, 1083, 1321, 1287, 1080, 1444, 1605, 2356, 2940, 2970, 2757, 2397, 1953, 1455, 328, -107, -333, -272, 423, -1791, 2208, 2724, 2645, 3526, 11630, 9834, 4870, 4306, 3324, 3120, 3493, 2015, 1469, 1120, 1111, 1226, 1037, 747, 799, 1002, 1358, 1046, 443, 863, -1145, 162, -793, -2608, -4460, -6114, -6435, -6968, -7976, -3916, -337, 4329, 6129, 7600, 7973, 8528, 16087, 5574, -79, 2288, 2590, 1648, 1819, 1407, 1818, -1634, 1874, 1177, 996, 725, 1276, 1216, 497, 511, 84, 1977, 2933, 2933, 3900, 3842, 3390, 2032, -656, -2541, -3803, -2297, -429, 4115, 4122, 7009, -11542, 14241, 14613, 9574, 1715, 3770, 615, 2412, 498, 1497, 1433, 1695, 2751, 1630, 1224, 534, 986, 1475, 644, 2321, 2447, 3667, 6164, 6304, 6954, -7103, 7010, 6685, 6223, 4958, 2529, 1396, 2459, 5509, 4093, 3577, 3781, 9529, 3076, 7634, 5087, 3875, 1832, 2861, 2122, 2576, 1974, 2140, 2547, 1517, -1491, 1446, 1449, 1333, 1261, 1880, 1360, 3743, 6164, 6034, 6310, 5720, 6030, 6444, 6393, 5375, 3319, 1510, -222, -827, -1348, -2297, -5595, -319, -2360, -2754, 3379, 3203, 2688, 2554, 1833, 832, 1043, 1069, 1210, 1847, 1709, 731, 291, 81, 378, -51, -1034, 585, 2839, 4141, 6686, 6466, 6614, 6193, -5640, 4392, 2564, -596, -3255, -4609, -5961, -5524, -4913, -3715, -3300, -1614, -1185, -823, -324, -470, 101, 1163, 354, 38, -141, 965, 1335, 988, 747, -0, -894, -664, -1358, -847, 817, 1827, 4711, 5423, 5625, 4881, 4166, 2807, 1013, -254, -1665, -3874, -5070, -5310, -5398, -4361, -3982, -3469, -2595, -1735, --595, -83, 1, 451, 255, 297, -34, -113, 70, -130, -99, -244, -473, -428, -921, -98, 1080, 1197, 1712, 2170, 2980, 3856, 3297, 2939, 2723, -1168, -314, -1825, -2880, -4199, -5658, -4732, -3875, -4146, -3300, -3437, -3189, -3098, -2711, -2427, -2232, -2401, -2341, -2204, -1889, -1880, -1863, -2053, -2194, -2091, --2046, -2799, -2965, -3234, -3398, -3685, -4080, -4350, -4515, -4685, -4814, -4948, -4958, -5049, -4733, -4358, -4110, -4011, -3495, -3490, -4200, -4228, -3073, -3809, -3981, --3232, -3247, -3158, -3037, -3055, -3080, -2991, -3789, -3530, -2722, -3823, -3650, -2972, -3056, -3180, -3260, -3324, -3351, -3438, -3486, -3556, -3641, -3643, -3673, -3749, --3658, -3635, -3538, -3583, -3688, 2090, 1999, 1602, 2431, 2833, 2807, 2128, 2481, 2600, 2591, 2550, 2487, 2492, 2469, 2387, 2407, 2142, 2427, 2444, 2244, -1686, 1878, 1923, 2027, 2081, 2121, 2131, 2133, 2098, 2046, 2002, 1910, 1765, 1676, 1743, 2009, 1940, 1975, 2066, 3659, 2098, 2666, 2331, 2010, 1928, -1704, 1894, 2192, 2046, 1981, 1914, 2062, 2066, 2131, 2068, 2445, 1831, 1836, 2035, 2276, 2441, 2531, 2507, 2541, 2504, 2351, 2287, 2074, 1813, 1427, -1423, 1994, 1990, 1272, 1863, 3108, 2633, 3071, 2309, 2020, 1707, 1641, 1484, 2050, 1723, 1788, 1516, 1753, 1782, 1967, 1852, 2110, 1705, 1746, 2222, -2701, 3034, 3192, 3078, 2975, 2696, 2403, 2479, 2087, 1508, 648, 892, 1955, 1691, 86, 1960, 3073, 1520, 2399, 2040, 1405, 1010, 741, 827, 1408, -1263, 1280, 1060, 1347, 1522, 1474, 1742, 1914, 1297, 1396, 1860, 2435, 2852, 2949, 2619, 2493, 2283, 2051, 2229, 2191, 1919, 692, 632, 1366, 938, --3407, 1558, 6383, 4392, 4399, 3554, 2311, 2808, 2180, 1725, 1763, 1421, 1233, 739, 1350, 1600, 1588, 1860, 2202, 2588, 3289, 4334, 6023, 6835, 7388, -7254, 6217, 5415, 4743, 4090, 707, -3815, -6044, -5745, -3245, -1056, -11690, 805, 6968, 2392, 1573, 2219, 1377, 1411, 1455, 1672, 1718, 1698, 1751, 1356, -1444, 1634, 2247, 2530, 2898, 2590, 2148, 2678, 3614, 4208, 4971, 5836, 6499, 6634, 6224, 4546, 2104, -2280, -5397, -8990, -13578, -10878, -19886, -7056, 3402, --1435, 3661, 414, 3259, 1387, 1867, 1665, 2719, 1036, 484, 750, 1635, 2069, 2536, 2696, 3548, 2874, 1863, 2448, 2438, 2437, 2254, 1955, 826, -96, --392, -2961, -6316, -10916, -12221, -12497, -14639, -16221, -13922, -13259, -5093, -4723, 530, -1116, 603, 21, 1462, 875, -4, 1728, 2379, 1375, 1794, 1699, 1699, -1582, 2915, 2839, 2071, 2278, 1499, 1873, 533, -1829, -4121, -5688, -6043, -6867, -7559, -8640, -10316, -10812, -10047, -11415, -7788, -8887, -6460, -4540, -3651, -1593, --1195, -144, 613, 750, 179, 1084, 1228, 967, 1276, 1358, 1907, 1797, 2108, 2449, 2905, 2559, 445, -961, -2207, -2525, -3608, -3767, -3403, -1291, -548, --1363, -3306, -5574, -7470, -7920, -4112, -4320, -2595, -1545, -662, -89, 72, 492, 415, 380, 548, 319, 426, 512, 324, 419, 1186, 811, 1257, 1871, -1314, 949, -424, -809, -849, -271, -447, 47, 668, 226, -287, -92, -1364, -2906, -4330, -4466, -1924, -2215, -2805, -2482, -2695, -1874, -1262, -620, -585, --262, -206, 25, -67, 12, 68, -124, -387, -467, 76, -1346, -2661, -2792, -3291, -3414, -3872, -4314, -4385, -4501, -4580, -3973, -3442, -3002, -2672, -2302, --2229, -2197, -346, -158, -2360, -6, -593, -459, 49, 165, 464, 196, -109, 48, 61, -8, -672, -844, -717, -995, -1954, -1181, -1090, -1161, -1324, --1272, -1142, -1082, -1023, -910, -833, -816, -841, -814, -775, -760, -641, -530, -26, 537, -1106, -1866, -3232, -221, -1368, -2543, -2638, -2563, -2486, -2555, --2623, -2597, -1408, -537, -2997, -1763, -1291, -176, -481, -526, -553, -691, -862, -1032, -871, -755, -631, -525, -399, -276, -194, -110, -42, 25, 239, -556, -104, -277, 644, 1172, 1959, 590, 1322, 1765, 1814, 1839, 1872, 1963, 1985, 1951, 1363, 895, 2096, 1441, 1114, 363, 546, 509, 565, 605, -662, 722, 807, 904, 1030, 994, 889, 731, 467, 201, -167, -188, -1151, -907, 935, 33, 704, 657, 564, 804, 714, 887, 1190, 1019, 974, -925, 1171, 1036, 1092, 1075, 1600, 690, 571, 630, 764, 816, 918, 1074, 1237, 1476, 1845, 1990, 1859, 1356, 749, -7, -917, -1109, -2952, -2128, --1031, -778, 214, 359, 531, 738, 1023, 972, 1542, 1104, 1443, 965, 1232, 1094, 1260, 1438, 1283, 1003, 645, 705, 984, 1191, 1558, 2065, 2557, -3235, 3787, 3648, 2950, 1809, 629, -962, -2745, -2899, -3580, -2800, -1424, -820, -413, -73, 23, 492, 637, 887, 1287, 1323, 1271, 993, 1152, 1174, -1698, 1392, 1350, 1226, 877, 883, 1313, 1449, 1848, 2466, 3044, 3785, 4853, 5405, 4846, 3222, 1440, -824, -3342, -3520, -7497, -7794, -6515, -3366, -2201, --1178, -702, 32, 335, 855, 1209, 1414, 1459, 1089, 1410, 1489, 1793, 2067, 2275, 1642, 643, 763, 1039, 1785, 3034, 4714, 6272, 7032, 7297, 3145, -1311, -253, -1728, -4242, -7820, -8814, -1526, -7781, -8462, -4068, -2813, -1291, -124, 699, 921, 1274, 1773, 1369, 1211, 836, 1258, 1380, 1443, 1693, 1944, -1592, 1901, 2221, 2063, 2072, 1653, 1072, 120, -1166, -2249, -4680, -6325, -7619, -3324, -688, 1947, -1195, 10799, -2406, -9079, -2836, -5200, -1726, -2033, 11, --23, 535, 1582, 1403, 1418, 1393, 1540, 1402, 1795, 1297, 1427, 1440, 996, 547, -138, -1857, -2747, -2939, -3234, -3931, -4958, -6150, -6674, -5057, -1847, -1733, 8454, 8467, 10492, 7220, -1420, 1620, -2237, 553, -219, 242, 822, 1367, 408, 1718, 1415, 632, 578, 802, 933, 675, 1331, 132, -882, -536, --92, -417, -234, 165, 1425, 1611, 502, 1342, 1830, 2856, 3202, 2648, 2257, 5718, 5565, 6362, 1964, 1945, 1895, 100, 802, 1312, 82, 315, 668, -933, 976, 990, 1188, 1087, 247, 777, 1864, 327, -1075, -1210, -1533, 316, 1813, 3002, 4155, 4654, 4501, 2281, 1017, 1276, 1351, 2337, 3469, 4193, -3587, 3767, -99, 286, -341, 166, 662, 78, 631, 653, 732, 234, 359, 912, 576, 657, 667, 717, 405, -269, -337, -773, -1363, -1112, -748, --18, 404, 277, -96, -11, 136, -327, 79, 1082, 2868, 2943, 2314, 1641, 1324, 1989, 1513, 1103, 631, 364, 216, 640, 329, 1019, 132, 631, --217, 57, -151, -468, -1294, -38, 963, 306, 416, 216, 132, -146, 451, 980, 1471, 1350, 1334, 1435, 1823, 2035, 2481, 2189, 2268, 2397, 757, -1657, 1266, 1375, 1632, 1579, 1763, 1844, 1588, 1851, 1821, 1909, 1392, 1667, 1521, 1496, -44, 2282, 2187, 1957, 1958, 1755, 1629, 1429, 1858, 2007, -2201, 2382, 2592, 2716, 2598, 2506, 2444, 2349, 2108, 2330, 2184, 1697, 670, 2219, 1559, 734, 699, 625, 668, 535, 500, 488, 1490, 2092, 1, -1370, 1881, 2757, 2288, 2464, 2455, 2516, 2595, 2622, 2572, 2525, 2490, 2472, 2432, 2431, 2355, 2305, 2231, 2235, 2455, -657, -218, -180, -424, -450, --63, -493, -405, 238, 255, 296, 279, 328, 315, 292, -336, -599, 352, -341, -518, -661, -544, -623, -694, -713, -768, -847, -933, -1063, -1230, --1323, -1304, -1228, -866, -571, -155, -161, 761, 149, -931, -129, -467, -270, -259, -47, -83, -68, -16, -128, -132, -245, -110, -250, -309, -306, -110, -543, -575, -674, -892, -922, -1048, -1241, -1367, -1716, -2263, -2787, -2835, -2405, -1460, -520, 570, 668, 2652, 848, 84, 594, -135, -22, 134, -699, 723, 613, 695, 402, 544, 8, 209, -39, -178, -81, 25, -243, -575, -664, -1151, -1226, -1471, -1940, -2194, -2972, -3860, -4649, -4751, -3980, --2104, -216, 2027, 2208, 4621, 1512, 448, 1355, 649, -43, 283, 1096, 1044, 1115, 1227, 1217, 987, 522, 699, 452, 967, 500, 928, 171, -591, --653, -1248, -1255, -1582, -1923, -2028, -2893, -4556, -6665, -7391, -6197, -3229, -259, 3420, 3773, 6106, 3972, 909, 213, 1041, 1527, 1978, 1223, 1189, 1044, -923, 1028, 1056, 915, 731, 327, 491, -386, -120, -336, -774, -965, -2470, -2874, -3813, -4830, -6855, -8135, -9472, -6992, -4574, -2441, 245, 2751, 5989, -5879, 1810, 3173, 1528, -58, 43, -785, -735, -688, 13, 574, 1248, 1316, 1294, 857, 991, 803, 925, 309, 668, -973, -2225, -2386, -3494, -4897, --6478, -7993, -7986, -7803, -8385, -4150, -1124, 2031, -1377, -2505, -2291, 612, -10141, 1280, 5627, 1290, 3130, 1401, 1611, 339, 1219, 954, 425, 1632, 1636, -412, 687, -284, -431, -1499, -1415, -2091, -2959, -1960, -1067, -67, 440, 395, 1857, 3278, 4246, 6645, 8041, 7976, 2654, -2441, -11215, -9775, -9747, -6181, -1182, -2281, 1028, -582, 325, -17, 1222, 1255, 657, 1215, 906, -470, -642, -749, -1286, -1262, -1177, -1693, -255, 621, 1075, 2440, 3967, 5369, 6391, -7834, 9655, 8112, 6333, 4351, 1088, -537, -2696, -4614, -1723, -2767, 241, -352, -628, 782, 618, 671, 1463, 1459, 1441, 1171, 1049, 766, 172, -329, --411, -1155, -1831, -2040, -954, 447, 3176, 3856, 4473, 4545, 4790, 4487, 4001, 4419, 3654, 1731, 24, -1354, -2589, -1091, -1132, -1490, 1812, 1335, 1748, -1485, 712, 622, 295, 550, 977, 1264, 1314, 1136, 1525, 1374, 750, 615, 339, 735, 1044, 1526, 2810, 2704, 2556, 2017, 1534, 1360, 1291, 659, -39, 87, -6, -265, -1331, -663, -519, 102, 503, -226, 255, 292, 647, 702, 1100, 700, 1145, 767, 1600, 1565, 2150, 2487, 3053, 3301, 3439, -3584, 3264, 3259, 2932, 2924, 2997, 3218, 2511, 1837, 1175, 1066, 976, 828, 380, 118, -142, -124, -117, -175, 2063, 467, 1109, 941, 435, 490, -118, 323, 686, 445, 388, 458, 1092, 1135, 1273, 1412, 2709, 1553, 1350, 1528, 1556, 1568, 1438, 1385, 945, 729, 459, 243, -37, -267, -174, --125, -145, -92, 197, -246, 753, 1438, 2416, 339, 1388, 2309, 2410, 2419, 2316, 2457, 2525, 2477, 1600, 860, 2884, 1989, 1522, 331, 641, 552, -511, 506, 524, 586, 516, 451, 382, 278, 199, 75, 101, 96, 112, 93, 230, -433, -261, -447, -8, 73, -139, -122, -95, -247, -226, --253, -311, -297, -325, -389, -235, -267, -488, -336, -361, -534, -523, -535, -519, -534, -534, -497, -523, -522, -516, -499, -504, -537, -608, -583, --430, -375, -309, -27, 1170, 244, 502, 257, 113, -41, -33, 40, 22, 32, -50, -136, -214, -319, -379, -480, -503, -707, -776, -756, -695, --673, -625, -563, -683, -720, -700, -657, -721, -782, -1094, -1009, -560, -352, -832, 180, 1344, 761, 1211, 716, 554, 263, 460, 362, 389, 288, -277, 36, -43, -242, -524, -566, -713, -1030, -1180, -1190, -1093, -1210, -1306, -1267, -1612, -1682, -1637, -1376, -1101, -1005, -1625, -1686, -894, -661, -1405, -946, 2725, 1487, 1895, 1819, 1277, 806, 795, 794, 957, 997, 702, 167, 282, -43, -292, -571, -680, -1281, -1370, -1248, -1096, -1130, -1101, -1149, --1844, -2171, -2140, -1791, -1501, -1302, -2430, -1989, -757, -387, -8036, -5249, -1091, -1262, -1129, -796, -885, 328, 808, 920, 930, 956, 928, 712, 398, --6, -112, -705, -1076, -1936, -2423, -2740, -3143, -3423, -4186, -5374, -4859, -4285, -2853, -1662, -1054, 179, -2290, -4629, -7600, -7135, -7270, -5447, -2258, -1432, --1101, -16, 192, 24, 149, 554, 704, 1289, 1237, 594, 333, -117, -795, -1207, -2053, -1398, -1019, -719, 732, 2667, 4867, 6926, 8003, 9084, 11046, -7761, 5055, 1985, 1302, 468, -1116, -5312, 4993, -5812, -7428, -3225, -3191, -1648, -1022, -448, 796, 1090, -182, 1128, 642, -936, -1066, -1299, -2165, -1232, --1519, 86, 2604, 3495, 5889, 8351, 9825, 10151, 9543, 8617, 7865, 5629, 3768, 1662, 3638, 5555, 11295, 7100, 8095, 2338, -3295, 570, -1253, -54, -154, -22, 335, 515, -698, 883, 1198, 518, 673, 181, 105, 173, -574, 1267, 1925, 1889, 2620, 1954, 1790, 2022, 943, -491, -2351, -1960, -2061, -2290, --577, 1071, 5047, 4447, 1403, 1418, -452, -543, 43, -280, 41, -205, 473, 781, 692, 579, 387, 308, 354, 574, 1092, 1036, 480, 1771, 1595, -1006, 201, -854, -2047, -3310, -4394, -5000, -5623, -5726, -5105, -3901, -1898, 42, 3058, 1665, 621, 1008, -754, -395, -431, -661, -218, 144, 624, 684, -455, 881, 872, 405, 312, 263, 188, 560, 1079, 361, -296, -503, -1533, -2073, -2484, -2886, -2733, -2712, -2645, -2032, -1303, -873, -706, -629, 81, -198, -437, -422, -351, 190, 240, 218, 84, 47, 18, 162, 219, -34, 205, -238, 304, -239, -291, -419, 20, -1234, -1820, -1253, -1152, -1304, --1627, -1958, -1740, -1549, -1368, -1475, -1655, -1849, -1514, -1275, -1245, -953, -484, -526, -877, -780, -829, -658, -546, -526, -396, -396, -240, -253, -124, --101, -19, -279, -262, -238, 371, -814, -731, -804, -921, -883, -766, -686, -662, -676, -631, -608, -527, -502, -536, -578, -529, -511, -628, -558, --485, -461, -204, -555, -526, -302, -275, -239, -210, -133, -103, -17, -358, -557, 163, -480, -715, -1006, -790, -868, -846, -880, -948, -1017, -979, --935, -903, -848, -799, -726, -689, -647, -626, -626, -721, 23, -351, -187, -815, -864, -678, -478, -705, -799, -759, -725, -671, -705, -733, -708, --703, -411, -838, -724, -514, 306, 76, 158, 227, 270, 310, 354, 342, 340, 305, 279, 227, 216, 40, -130, -479, -356, -1190, -1210, -1242, --566, -605, -573, -336, -225, 140, 49, -217, -47, -4, -6, -315, -275, -313, -195, -802, 212, 371, 387, 603, 683, 770, 817, 738, 637, -485, 495, 417, 299, -131, -677, -1627, -1446, -2075, -2144, -1912, -1409, -880, -557, -426, -327, 29, 315, -74, 248, 53, 277, -289, -268, -131, --221, -438, 253, 672, 713, 1183, 1424, 1687, 1908, 1849, 1789, 1481, 1400, 1164, 1133, 210, -751, -2846, -2370, -3575, -3675, -3032, -1565, -1192, -712, --384, 163, 808, 883, 715, 824, 584, 447, 58, -34, -449, -99, -623, 508, 1143, 1109, 1683, 1900, 2136, 2183, 1782, 1290, 669, 949, 1079, -863, -520, -2597, -5785, -4939, 3462, -40, -3329, -1743, -1641, -1187, -587, -1018, -273, 387, 570, 958, 1041, 753, 478, 314, -105, 166, -603, 180, -1462, 1744, 3260, 4078, 5440, 7222, 8060, 8608, 8577, 6943, 5686, 4301, 5509, 6022, 5878, 3201, 8798, 2565, -1502, -250, 132, -430, 19, 124, 335, -449, 637, 1041, 917, 548, 603, 333, 54, 194, 286, 1519, 2294, 2632, 3115, 4559, 5569, 6428, 5869, 4540, 1769, 1187, 475, 648, 1973, 2829, -5190, 7266, -167, 6348, 4959, 2819, 1558, 1253, 198, 22, 792, 951, -334, 802, 494, -214, 49, 403, 739, 812, 1395, 734, -1108, -1566, -3214, --4973, -6317, -6741, -8076, -8263, -8004, -6302, -5025, -2689, -4102, -5091, -6781, -3488, -5243, -346, 3419, 291, 865, 486, 706, 687, 838, 814, -204, 684, -650, 614, 405, 333, 672, -160, 663, -1024, -3338, -3855, -4795, -5338, -6267, -6994, -6918, -6263, -5331, -4650, -3673, -2397, -2670, -2910, -5141, -3341, -2296, --2191, -564, -216, -82, 168, 175, 436, 395, 414, 231, 144, -128, -183, -155, -109, -622, -182, 873, -1242, -2287, -2760, -3809, -3917, -3915, -3225, --2662, -1662, -17, 397, 413, 222, -86, -714, -2768, -2302, -1036, -1282, 33, -301, -283, -23, 16, 280, 285, 232, 2, -120, -174, -202, -664, --1044, -1120, -1528, -1768, -1886, -1935, -1846, -1375, -646, -339, -155, -150, -16, 199, 99, -338, -996, -945, -575, -460, -793, -147, 166, 58, -228, --153, -8, 156, 244, 282, 220, 400, -8, -253, -496, -759, -911, -1161, -1284, -1545, -1348, -960, -925, -760, -721, -526, -280, -489, -601, -709, --597, -386, -90, -263, -415, -365, -185, -423, -441, -212, -163, -146, -214, -230, -228, -282, -400, -424, -502, -485, -501, -591, -662, -755, -789, --977, -1012, -955, -944, -872, -795, -767, -726, -650, -560, -507, -423, -379, -283, -278, -225, -288, -342, -385, -433, -556, -586, -634, -443, -480, --539, -552, -526, -548, -525, -533, -541, -663, -603, -708, -742, -695, -556, -539, -492, -465, -439, -402, -367, -341, -319, -290, -282, -279, -277, --326, -364, -375, -386, -491, 1747, 1746, 1911, 1532, 1024, 111, 1651, 1129, 394, 451, 461, 396, 367, 356, 374, 1183, 1536, 246, 1168, 1475, -1486, 1480, 1521, 1477, 1526, 1542, 1525, 1567, 1604, 1667, 1774, 1897, 2125, 2047, 2049, 2066, 1944, 2504, 2257, 225, 1390, 996, 1085, 1280, 1120, -1470, 1491, 1218, 1402, 1322, 1406, 999, 1029, 1299, 1179, 1024, 1341, 1261, 1310, 1171, 1266, 1268, 1255, 1420, 1671, 1999, 2356, 2706, 3180, 3047, -3047, 3139, 2848, 3689, 2428, 1076, 1256, 495, 542, 617, 566, 864, 998, 582, 883, 635, 1028, 530, 577, 746, 730, 1135, 922, 974, 1139, -902, 1219, 1336, 1407, 1747, 2075, 2668, 3242, 3739, 4532, 4243, 4366, 4678, 4008, 5198, 2727, 707, 834, 660, 268, 407, 181, 741, 848, 473, -572, 510, 564, 130, 23, 403, 404, 834, 380, 145, 241, -148, 239, 383, 532, 1238, 2259, 3637, 4575, 5317, 6376, 6014, 6000, 6655, 5595, -4076, 4914, 4563, 2788, 2277, 1544, 1381, 1158, 707, 429, 338, 714, 786, 742, 520, 381, 551, 557, 1288, 1401, 1120, 1847, 2172, 2569, 3014, -3601, 3864, 3539, 2104, 2376, 2277, 1694, 2206, 2681, 3819, 4785, -6827, 218, 3145, 1358, 1378, 1133, 722, 519, 629, 661, 605, 917, 773, 681, -476, 524, 1077, 1112, 1377, -450, -2342, -3455, -5200, -6253, -7304, -7880, -8000, -6989, -4813, -3219, -1227, -333, -1537, -3287, -6585, -6854, -2861, -4256, -1340, --601, 542, 309, 1034, 376, 1247, 1272, -114, 1095, 1063, 928, 751, 382, 555, -297, -1006, -1787, -2262, -2517, -2846, -2613, -1969, -758, 300, 734, -1036, -184, -883, -2575, -1005, 929, 3622, 244, 1883, -1018, -2671, -322, -133, 55, 265, 323, 568, 490, -213, 219, 101, -30, -567, -918, -1432, --992, -1502, -1364, -588, -411, -96, 445, 929, 959, 1905, 2309, 2501, 1774, 1036, -246, 780, 1358, 4443, 1390, 1879, 612, -324, -270, 164, -63, -340, 784, 664, 386, -100, -186, -90, 287, -27, -451, -705, -1193, -2022, -1090, -492, -449, 344, 731, 1088, 1090, 1387, 801, -502, -638, -658, --709, -617, -29, 2023, 2016, 1276, 798, -625, -481, -354, -370, -63, 146, 114, 114, 194, 299, 163, 5, -75, 43, 284, -85, -540, -69, -84, -325, -649, -866, -702, -94, -46, -135, -449, -772, -552, 233, 53, -97, 160, 997, 323, 82, 36, 320, 170, 203, 150, 184, 18, -56, -206, 124, -17, 362, -13, 117, 11, -49, -277, -3, -167, -692, -1023, -825, -777, -841, -727, -599, -415, -290, -238, -244, 70, 350, -451, 279, -406, -367, -629, -452, -469, -369, -253, -191, -137, -137, -234, -109, -150, -162, -309, -213, -309, -390, -796, -198, -233, -267, -310, --475, -599, -695, -598, -550, -527, -540, -543, -584, -568, -596, -514, -480, -284, -221, -219, -240, -297, -166, -227, -294, -338, -368, -355, -444, --471, -487, -256, -179, -551, -255, -174, 14, -165, -186, -222, -242, -255, -301, -327, -365, -387, -394, -391, -386, -352, -325, -319, -288, -255, --554, -257, -655, 426, 1061, 1947, -111, 806, 1711, 1828, 1810, 1650, 1807, 1855, 1889, 773, -58, 1932, 786, 171, -852, -533, -645, -689, -728, --751, -751, -762, -766, -755, -812, -830, -846, -792, -666, -319, -386, -157, -62, 1917, 94, 573, 557, 142, 41, -200, -33, 216, -5, -6, -84, 338, 123, -62, -80, 804, -718, -681, -710, -838, -903, -931, -880, -883, -937, -999, -1246, -1342, -1307, -1240, -936, -132, -204, -138, 669, -1501, 881, 1083, 776, 573, 129, 649, 293, 504, 95, 640, 359, 418, 53, -61, 34, -133, -733, -956, -1101, -1440, -1694, -1858, -1918, -2029, --2066, -2127, -2451, -2497, -2321, -2008, -1431, 181, -29, -581, 1259, 2193, 1041, 958, 1141, 669, -2, 457, 588, 152, 547, 411, 330, -34, -289, -47, -247, -113, -768, -761, -794, -1190, -1434, -1583, -1496, -1508, -1786, -2275, -3127, -3314, -3159, -2762, -1697, 427, 126, -3760, -2513, 371, 1084, 269, -218, -187, 191, 603, 744, 538, 476, 422, 717, 206, -132, -8, -383, -449, -1459, -2817, -3769, -5159, -5611, -6343, -7276, -7328, -6495, -4294, -3583, --2762, -1481, -1229, -1528, -2212, -3747, 1776, -2043, -2839, -1160, -1054, -101, 523, 1195, 1150, 1111, 583, 836, 572, 422, -105, -377, -679, -1073, -1449, --1647, -1731, -1616, -1006, -2181, -2132, -1388, 356, 1212, 1366, 2291, 2000, 782, 2594, 3477, 4646, 3018, 2173, 1722, -620, -240, -642, -363, -327, 29, -356, 654, -12, 728, 818, 958, 174, -207, -455, -324, -492, -132, 518, 603, 1479, 1759, 1945, 1437, 1868, 1841, 1077, 1366, 963, 344, 2088, -1431, -1078, 525, -1899, 980, 1503, 502, 236, 176, 404, 926, 550, 289, -211, 161, 358, 563, 372, 142, 164, 37, -443, 34, 273, 202, -311, -61, -225, -161, -967, -1608, -2053, -2208, -1490, -613, 434, 375, -1916, -1740, -1714, -304, 440, 655, 198, 463, 261, 104, 150, 133, -212, -242, 430, 486, 345, 240, 233, 523, 438, 847, 574, 252, -273, -816, -1024, -1068, -1576, -1152, 163, -284, -281, -81, 1089, 1267, 504, -1211, --569, -801, 210, 71, 116, 395, 404, 324, 346, 297, 306, 117, 100, 246, 281, 361, 285, 533, 665, 565, 780, 756, 302, -537, -1170, --1756, -1531, -1389, -1194, -884, -617, -582, 310, 880, 1070, 192, 384, 706, 638, 305, 205, 276, 293, 382, 335, 447, 381, 540, 491, 471, -498, 426, 337, 478, 541, 754, 722, 620, 664, 404, 174, -121, -108, -245, -452, -407, -438, -539, -377, -197, 133, 293, 418, 525, -13, -519, 332, 346, 449, 416, 474, 405, 278, 265, 222, 153, 129, 193, 293, 339, 166, 421, 286, 196, 87, 14, -33, -113, -147, -179, --192, -214, -204, -193, -36, 79, 172, 287, 324, 508, 56, -121, -365, 259, -22, -258, -293, -293, -266, -288, -295, -301, -96, 114, -313, --123, 22, 271, 178, 167, 133, 101, 58, 12, 61, 98, 131, 145, 153, 135, 180, 216, 259, 303, 326, -781, -877, -853, -1056, -1041, --886, -916, -967, -975, -957, -944, -897, -897, -891, -860, -943, -814, -961, -1041, -946, -561, -681, -668, -620, -662, -668, -673, -649, -637, -648, --621, -654, -780, -752, -808, -957, -922, -1705, -1611, -1013, -1018, -994, -956, -803, -685, -490, -497, -581, -518, -469, -448, -569, -608, -758, -743, --1012, -642, -650, -680, -549, -657, -706, -783, -787, -783, -812, -669, -732, -1116, -1004, -1188, -1708, -1764, -2099, -1735, -1310, -1292, -975, -680, -511, --445, -260, -41, -230, -43, -95, 84, -166, -284, -518, -677, -842, -544, -555, -594, -306, -523, -591, -660, -623, -592, -623, -424, -553, -1423, --1164, -1448, -2343, -2165, -3909, -3331, -2180, -1595, -1639, -1047, -768, -377, 271, 502, 287, 407, 361, 362, 26, -189, -555, -617, -817, -546, -533, --529, -121, -420, -670, -1025, -1184, -1146, -1086, -479, -739, -2131, -1860, -2421, -4096, -4123, 5304, 2933, -126, 20, 487, 525, 831, 459, 149, 221, -536, 288, 243, 579, 64, -126, -422, -666, -1175, -1070, -230, -307, -192, -360, -277, -312, -245, -734, -1593, -1596, -1171, -823, 429, 1525, 1983, -4352, 1280, 2590, 1423, 945, 1038, 296, 372, 337, 962, 957, 391, 450, 429, 827, 141, -235, -716, -931, -1173, -547, 167, 567, 1233, 1738, -1860, 1621, 1085, 823, 892, -1102, -1020, 641, -35, -144, -150, 112, -321, 409, 1174, 1079, 882, 657, 435, 965, 605, 581, 16, 25, 153, -1156, 195, 174, 255, 463, 612, 513, 794, 511, -456, -278, -210, 56, -667, -1002, -629, -1585, -1131, 0, -755, -714, -694, -309, 1988, 428, --251, 319, 209, 272, 309, 841, 250, 59, -101, -1, 228, 1282, 637, 560, 967, 636, 516, 451, 135, -107, -91, 12, -72, -191, -683, --584, 328, 568, 1103, 2012, 1366, 971, 482, 1268, 329, 851, 65, -14, 286, 250, 411, 431, 274, 337, 386, 696, 681, 603, 396, 383, -455, 348, 547, 536, 536, 550, 357, 38, -280, -835, -495, -817, -1579, -1283, -659, 433, 382, 138, -718, -433, -598, -506, -647, -146, 92, -354, 469, 236, 378, 409, 386, 200, 188, 222, 412, 487, 510, 465, 448, 218, -28, 91, 489, 721, 754, 215, -222, -614, -824, -374, -71, 567, 116, -205, -265, -577, -254, -550, -267, -250, -226, -211, -133, -46, 192, 287, 593, 426, 342, 300, 164, 122, 94, 173, 387, -247, 269, 432, 457, 203, 60, 6, 173, 389, 582, 510, 458, 499, 353, 239, 115, -58, 434, 442, 838, 456, 632, 599, 526, 537, -481, 532, 572, 614, 657, 717, 646, 634, 576, 482, 488, 431, 472, 512, 574, 673, 748, 777, 745, 697, 690, 704, 715, 699, 647, -602, 544, 507, 330, 214, 563, 683, 691, 450, 621, 656, 660, 640, 601, 598, 578, 578, 681, 568, 548, 629, 540, 357, 425, 454, -479, 508, 540, 597, 560, 534, 492, 459, 427, 405, 382, 363, 346, 330, 308, 79, -24, 212, -104, -352, -745, 74, -241, -514, -485, --454, -448, -493, -499, -463, -120, 69, -605, -194, -36, 199, 84, 124, 162, 127, 98, 31, 38, 28, 44, -2, -15, -41, 5, 8, --2, 11, 297, 253, -1026, -134, -279, -140, -14, -42, 130, 129, 110, 128, 135, 241, 24, 37, 11, -29, -333, 194, 127, 132, 224, -108, 10, -146, -139, -108, 31, -46, -61, -109, 56, 175, 302, 344, 476, 207, -478, -67, -416, -329, -137, -40, 95, 214, 162, 209, -118, 527, 187, 165, 103, -42, -45, 215, 246, 290, 524, 392, 275, -14, 57, 40, 103, -201, -344, -533, -325, -243, 137, 189, 1873, -648, -819, -457, -169, -390, -131, -170, 190, 457, 382, 316, 374, 677, 214, 159, -182, -140, -383, 130, 198, 130, 476, 156, -86, -475, --393, -280, 66, -235, -283, -424, 92, 496, 1394, 1580, -248, 2105, 3722, 2568, 1522, 914, 804, 1205, 875, 528, 479, 233, 164, 484, 262, -258, -120, 231, 144, 439, 870, 1179, 2021, 1917, 2224, 2755, 2798, 2648, 2302, 764, -713, -2193, -2905, -2994, -2575, -798, -159, 217, 1157, 886, -1211, 1404, 1007, 722, 779, 786, 222, 488, 564, 868, 398, 419, 444, 697, 600, 379, 292, -444, -1555, -1150, -1143, -1805, -1643, -1670, -1398, --46, 913, 1604, 2201, 2090, -214, 618, -368, 384, 693, 519, 873, 171, 740, 1608, 765, 438, 144, -311, 1, 1730, 476, 213, 334, 152, -130, -31, -573, -681, -800, -1499, -1928, -2261, -1462, -828, -256, 656, 1203, 2070, 1142, 430, -252, -99, -836, 61, 812, 133, 402, 306, 476, -891, 240, 14, 491, 256, 413, 1181, 429, 260, 25, 183, 450, 127, -114, -34, -4, 222, 231, -147, -188, -822, -2018, -1503, -1315, -1343, --1099, -1045, -1921, -515, 59, -326, 285, 396, 195, 332, 204, 371, 319, 293, 376, 210, 183, 228, 240, 342, 234, 257, 241, -79, -224, --354, -247, 151, 242, 426, -419, -759, -807, -621, -561, -771, -444, -525, -1378, -37, -421, 298, 466, 578, 535, 490, 447, 592, 577, 519, -275, 474, 452, 387, 243, 126, 41, 74, 1, -47, -220, -222, -116, 389, 479, 560, 404, 523, 791, 529, 116, -558, -395, -466, -751, --818, 54, -119, -186, -33, 10, 42, 76, 59, 97, 126, 197, 206, 374, 430, 460, 451, 487, 286, 130, -60, -7, 81, 69, 211, -354, 521, 399, 235, 87, -32, -90, -203, -6, 88, 255, 170, 52, 116, 100, 255, 246, 323, 416, 440, 457, 378, 385, 328, 314, -300, 344, 230, 196, 156, 309, -142, -144, -148, -139, -156, -189, -189, -224, -222, -246, -284, -317, -356, -287, -225, -155, -92, 52, 109, --82, -99, 33, -10, -43, 50, 64, 110, 138, 179, 212, 231, -23, -49, 233, -14, -37, -43, 4, -25, -33, -40, -41, -49, -66, --78, -79, -74, -69, -80, -41, -19, 6, 35, 75, -5, -67, -206, 29, 168, 262, 46, 165, 176, 170, 176, 177, 180, 194, 247, -157, 79, 193, 140, 94, -35, 18, 2, -18, -25, -36, -68, -36, -16, 8, 37, 41, 4, 30, 19, -40, -63, -504, -303, 515, -91, 274, 172, 153, 140, 70, 48, 101, 95, 143, 238, 206, 163, 95, 123, 241, 27, 38, 48, -9, -33, -64, -113, 0, 49, -44, 74, 50, -75, -83, -260, -504, -535, -1050, -596, 203, 83, 462, 332, 282, 247, 189, 146, 192, 179, 300, 454, 374, 262, 107, -214, 281, 110, 82, 72, -90, -148, -233, -423, -251, -114, -9, 216, 268, -42, 75, -133, -715, -735, -2858, -1033, 690, 445, 579, 643, -458, 263, 213, 219, 123, 232, 397, 734, 378, 268, 248, 269, 364, 207, 116, 219, 11, -79, -210, -428, -16, 188, 161, 338, 96, --477, -433, -1052, -2383, -2452, -1149, -1187, -1273, -615, -145, -110, -253, 14, 670, 826, 721, 308, 215, 567, 349, 305, 131, 384, 568, 736, -66, -376, -909, -958, -1105, -1430, -1208, -949, -503, 98, 873, 2301, 1238, 1085, 1676, -386, 1770, 340, 227, 640, 184, 755, 918, 732, 757, -776, 201, 348, 442, 866, 397, 389, 347, 446, 459, 216, -108, -100, 100, -736, -1212, -1312, -1532, -1447, -1246, -410, 167, 1016, 1214, 1196, -1305, 1731, 741, -226, -523, -425, -511, -373, -25, 1248, 378, 65, 25, -148, 255, 1537, 459, 184, 119, -172, -290, -391, -224, -498, -873, --256, 345, 963, 1267, 1243, 753, 467, -102, -716, -1672, -1921, -1943, -376, 363, 13, -378, 33, -42, 142, 169, 569, 163, 174, 560, 80, -288, 962, 276, 120, 49, 133, 85, 387, 1094, 1138, 741, 1226, 1485, 1633, 1304, 863, 367, -680, -1223, -962, -1279, -1010, -166, -100, -119, -81, 4, 58, 189, 105, 215, 380, 222, 119, 52, 232, 330, 300, 279, 228, 234, 83, -108, 180, 303, 536, 643, 498, 286, -43, -48, 77, 142, 391, 438, 304, -709, -1085, -926, -356, 162, 318, 163, 123, 321, 159, 175, 212, 280, 312, 216, 212, 195, 207, 291, -308, 255, 164, 176, 439, 382, 208, 12, -156, -282, -292, 107, 186, -9, -389, -399, 35, 234, 176, -476, -59, -359, -372, -128, 36, -226, 198, 244, 238, 212, 166, 153, 193, 271, 292, 259, 181, 99, 19, -100, -234, -306, -335, -326, -128, -9, 52, -160, -330, -437, --111, 138, 306, 52, -83, -239, -277, 337, 366, 417, 307, 355, 309, 239, 327, 219, 296, 315, 296, 272, 303, 199, 165, 155, 124, --82, 166, 189, 155, 104, 68, 52, 88, 139, 217, 226, 227, 189, 240, 242, 263, 283, 325, 374, 374, 444, 411, 248, 409, 376, -322, 338, 307, 273, 267, 243, 218, 365, 429, 86, 280, 326, 374, 309, 307, 303, 283, 250, 193, 234, 259, 301, 328, 365, 391, -390, 393, 387, 378, 535, -133, -172, -149, -203, -184, -73, -110, -64, 24, -3, -14, -17, 5, 22, 39, -21, -55, -29, -69, -101, --134, -111, -122, -143, -141, -148, -139, -168, -179, -204, -192, -188, -176, -200, -208, -194, -184, -190, -430, -598, -348, -258, -125, -57, 29, --23, -13, 5, 12, 37, 59, 93, 48, -100, -85, -66, -136, -73, -70, -131, -91, -81, -60, -139, -215, -296, -266, -260, -199, -206, --102, -69, -114, -425, -776, -1053, -731, -446, -153, 59, 168, 129, 139, 139, 189, 253, 229, 308, 224, -93, -24, -93, -141, -71, -139, --250, -273, -306, -275, -459, -579, -704, -711, -635, -471, -534, -455, -567, -603, -443, -1777, -2248, -1357, -824, -409, -39, 155, 251, 335, 262, -266, 404, 559, 483, 282, -103, -30, -10, -155, 9, 60, -161, -132, -151, -57, -322, -561, -815, -724, -635, -287, -193, 245, 36, -422, -1653, 682, -314, -798, -562, -483, -54, 173, 190, 274, 402, 347, 381, 557, 256, 185, 198, -67, -36, -117, -535, -736, -1382, -796, -926, --1653, -2154, -2660, -3032, -2693, -2352, -1982, -3031, -2851, -1994, 281, 2578, 2118, 1785, 1469, 1563, 807, 631, 708, 498, 522, 284, 152, 260, 663, -249, 119, -142, -262, -165, -198, -321, 140, 525, 884, 964, 969, 1008, 1048, 985, 175, -528, -359, -1622, -917, 1230, 1981, 712, 597, 729, -344, 133, 600, 593, 1209, 371, 56, 180, 63, 407, 1085, 385, 209, 301, 258, 121, -66, -37, -229, -448, -126, -211, -723, -1020, -1082, --837, 98, 541, 1085, 402, 590, 728, 862, 264, 148, 488, 332, 316, 500, 397, 542, 252, 129, 358, -60, 116, 722, 601, 687, 578, -402, 497, 358, 204, 212, 104, -86, -251, -285, 89, 381, 507, 634, 476, 384, -236, -52, 803, 644, -3, 155, 55, 90, 118, 226, -326, 480, 315, 209, 132, 297, 396, 345, 283, 204, -8, 87, 273, 13, 154, 160, -489, -205, -128, -268, -88, 142, 366, 112, 1, -142, -44, 57, 598, -59, 373, 117, 355, 392, 283, 233, 160, 308, 52, 57, 184, 157, 118, 156, 267, 247, 134, 117, 183, 94, -107, 111, -10, -242, -104, 347, 271, 154, -61, 57, 107, 267, -369, -482, -219, 257, 223, 420, 253, 386, 481, 519, 554, 581, 467, -309, 173, 105, 212, 156, 134, 46, 47, 41, -39, 57, 63, -23, -45, -136, -203, -263, -117, 90, 256, 216, 137, 185, -1, -142, --376, -122, -92, -219, -135, -223, -233, -243, -298, -320, -289, -236, -149, -153, -134, -102, -5, 14, 4, 59, 230, 71, 32, 40, 33, -19, -10, -87, -33, -28, 24, 118, 244, 351, 288, 241, 173, 55, 83, 5, 72, 113, 296, -16, 78, 219, 252, 268, 284, 319, -347, 370, 148, 56, 397, 186, 119, 43, 83, 78, 78, 85, 106, 129, 162, 192, 211, 223, 219, 246, 192, 161, 138, 104, 131, --208, -174, -131, -106, -127, -125, -97, -97, -62, -76, -69, -63, -60, -58, -65, -82, -101, -86, -117, -139, -163, -173, -177, -168, -191, --200, -189, -209, -231, -295, -238, -262, -389, -322, -291, -252, -192, -16, 92, -139, -38, 59, 84, 59, 23, -71, -92, -17, -40, -22, --36, 28, -1, -79, -128, -129, -112, -167, -193, -190, -267, -302, -293, -389, -429, -556, -389, -487, -863, -764, -681, -425, -146, 335, 323, -95, 149, 157, 142, 186, 216, 88, 49, 189, 131, 188, 119, 236, 200, 79, -37, -89, 1, -105, -110, -28, -173, -213, -131, -257, --338, -679, -346, -589, -1403, -1097, -949, -211, 155, 1359, 1159, 575, 524, 802, 505, 592, 432, 193, 208, 356, 289, 387, 466, 475, 404, -40, -15, -104, 68, -56, -155, -24, -292, -376, -258, -559, -680, -1031, -563, -1047, -2388, -2119, -1714, -278, 920, -1292, -239, 382, 186, 19, -42, 46, 166, 610, 599, 272, 441, 476, 403, 337, 314, 88, -60, -244, -136, 373, 482, 500, 328, 199, 351, -5, -140, -551, -309, --420, -333, -348, -821, -964, -1267, 396, 1094, 1603, 1343, 1057, 666, 475, 1053, 403, 246, 65, 165, 325, 411, 237, 112, -220, -324, -486, --585, -277, -297, -704, -434, -441, -732, -1200, -1681, -2166, -1226, -1089, -1470, -1561, -333, 2032, 891, -578, -713, -685, -591, -110, 585, 983, 1053, -258, -66, 262, 29, 252, 432, 608, 495, -115, 50, 36, -199, -870, -1080, -1100, -1736, -1945, -1643, -1265, -599, -3, 789, 1426, 1383, 1231, -362, 543, -127, -8, 21, -106, 150, 321, 304, 205, 187, 308, 277, 410, 253, 300, 279, 419, 493, 44, -58, -96, -238, -337, -209, -30, 327, 598, 1042, 1318, 1858, 2364, 2225, 1585, 788, 256, -147, -346, -247, 96, 110, 118, 40, 92, 238, 386, 508, 292, 136, 173, -156, 182, 290, 68, -49, -111, -229, -248, -344, -107, -12, 242, 412, 627, 1080, 1233, 1060, 676, 392, 187, 278, -416, -591, -338, 5, --270, -85, 20, 14, -40, 41, 46, 90, 88, 111, 146, 198, 284, 472, 217, 98, 145, 138, 42, -73, 60, 229, 413, 705, 758, -451, 332, 380, 521, 894, 823, 461, 95, -46, -24, -203, 146, 236, 331, 202, 196, 232, 214, 273, 254, 284, 221, 244, 27, -20, -47, 190, 258, 290, 313, 441, 369, 188, 13, 28, 96, 203, 200, 162, 111, 149, 249, 406, 364, 263, 99, 170, 166, 87, -40, --13, -62, -122, -134, -177, -103, -42, -33, 69, 150, 194, 100, 115, 100, 80, -104, 192, 212, 222, 258, 274, 254, 234, 335, 448, -553, 598, 591, 586, 463, 404, 322, 258, 218, 211, 197, 160, 41, 220, 162, 42, 44, 39, 51, 31, 22, 43, 209, 281, 35, -211, 273, 357, 313, 331, 330, 324, 332, 329, 329, 304, 281, 278, 288, 314, 295, 278, 265, 238, 276, -235, -252, -292, -274, -207, --116, -210, -178, -138, -177, -181, -162, -161, -165, -171, -187, -191, -165, -215, -223, -184, -193, -196, -206, -201, -203, -192, -236, -245, -247, --214, -233, -345, -278, -288, -341, -285, -401, -371, -43, -171, -26, -73, -63, -31, -132, -155, -135, -94, -58, -86, -45, -73, -119, -149, --180, -156, -192, -218, -240, -224, -215, -178, -265, -293, -310, -243, -295, -536, -352, -381, -534, -443, -639, -468, -134, -190, 179, 126, 85, -117, -26, -30, 49, 98, 132, 48, 104, 80, -10, -72, -111, -48, -89, -97, -176, -124, -160, -148, -350, -403, -398, -268, -341, -783, --471, -577, -999, -651, -1128, -460, 339, 324, 553, 591, 505, 419, 167, 112, 233, 293, 423, 459, 434, 327, 192, 101, 28, 144, -29, --136, -257, -178, -124, -106, -302, -442, -473, -325, -462, -951, -409, -626, -1385, -1084, -1489, -1162, -1735, -1386, -499, -154, -157, -370, 295, 570, -312, 499, 463, 132, 341, 392, 142, 105, 128, 285, 173, 280, 575, 291, 62, 45, 96, 103, 82, -137, -403, -1167, -1122, -999, -359, --992, 975, 1069, 698, 712, 377, 260, 346, 835, 359, 179, 80, 12, 208, 449, 524, 460, 109, 93, -144, -169, -111, -489, -995, -988, --822, -263, -231, 179, 587, 254, -628, -2283, -1351, -1432, -1233, -132, 309, 213, -254, -57, -5, 846, 760, 605, 97, -236, 6, -59, 59, --329, 485, 538, -332, -356, -515, -525, -600, -430, -162, -80, -93, 14, 205, 398, 548, 699, 758, 912, 1542, 2108, 2930, 992, 18, 210, -351, 315, 52, 143, 134, 167, 548, 557, 415, 302, 359, -15, 479, 413, -272, -192, -329, -189, -89, -106, -162, -350, -164, 401, 628, -746, 650, 1415, 1417, 894, 114, -122, 617, 16, 533, 130, 40, 116, 257, 491, 494, 269, 191, 99, 161, 24, 14, 152, 68, 72, -130, 117, -41, -50, -267, -197, 281, 363, 422, 683, 265, 236, 59, 545, 586, 383, 92, 19, 469, 596, 440, 403, 195, 174, -14, -15, 51, 84, 107, 72, -47, 168, 270, 245, 102, 65, 32, 39, 75, 65, 81, -12, -244, -122, -105, -132, -177, -197, -206, -10, --58, -290, -456, -385, 72, 213, -18, 48, 8, 139, 191, 156, 128, 91, 186, 253, 404, 230, 213, 82, 144, 131, 169, 220, 309, -233, 103, 187, 194, 37, -188, -419, -178, 23, 219, 13, -164, -352, -225, -165, -104, -113, -66, -80, 61, -63, -47, 19, 50, -7, -40, -18, 34, -4, 5, 26, 188, 217, 225, 267, 502, 355, 387, 413, 433, 481, 585, 660, 500, 308, 168, 43, -29, -147, -119, --119, -101, -70, -213, -243, -51, 78, 276, -93, 88, 216, 214, 242, 245, 287, 320, 335, 85, -99, 390, 160, 36, -190, -130, -130, --121, -112, -125, -104, -152, -161, -185, -197, -221, -258, -237, -230, -225, -226, -344, 22, -43, -10, -138, -187, -221, -22, -99, -186, -215, --216, -205, -194, -196, -211, -88, 3, -231, -112, -55, 31, 34, 38, -3, 27, 37, 60, 25, 24, 68, 14, -1, 13, -6, -6, --23, -19, 6, -86, -393, -181, -72, -62, 6, 42, 39, 13, -28, 61, 82, 39, 55, 63, 36, -8, -93, 18, 104, 115, 4, -75, 78, 115, 16, 20, 155, 41, 23, 75, -21, -32, -53, 2, -394, -536, -682, -498, -163, -97, 6, 103, -22, 10, 0, 145, -137, 21, 136, 150, 50, -14, -6, -29, 130, 120, -144, 14, 25, 127, -60, -44, 188, -87, -177, 24, -135, -58, -312, -347, -244, --722, -1210, -810, -224, -96, 106, 235, 126, 150, 193, 325, 448, 305, 435, 335, 172, 113, 157, 69, 286, 305, -132, 86, 92, 148, --129, -129, 278, -60, -61, 268, -50, -122, -396, -401, -516, -456, -1088, -1077, -672, -279, -86, -195, 104, 323, 111, 421, 356, -13, 238, -196, -58, -97, -64, -248, -513, -490, -570, -596, -659, -641, -594, -331, 84, -292, -467, -815, -301, -31, 125, -567, -42, 698, 1025, 588, -19, 91, 246, 578, 166, -34, 98, -91, 175, 485, 467, 422, 230, 181, 35, 121, -63, -52, 307, 116, -67, -52, -157, -343, -690, --299, -344, -1242, -657, -579, -844, -352, 1101, 323, -261, 12, 644, 1151, 895, 124, 66, -150, 5, -3, 63, -534, 494, 617, -253, -98, --259, -281, -148, -50, 14, -4, -68, -95, -726, -877, -650, -483, -305, -338, 925, 1808, 2096, 1729, 311, 185, -2, 39, -6, 274, 382, -231, 568, 466, 215, 221, 314, 59, 552, 533, 86, 85, -83, -213, -542, -728, -794, -1125, -1260, -1241, -878, -381, -114, 491, 699, 208, -86, -308, -576, -53, -5, 138, 292, 314, 191, 354, 294, 39, 79, 24, -14, -50, 5, 177, 231, 225, 168, 243, 138, 109, 93, -130, 228, 219, 286, 240, 246, 159, -34, 112, -119, -766, 98, 496, 548, 145, 417, 224, 140, 29, 100, 182, 267, 260, 239, 204, -197, 100, 84, 15, 92, 97, 0, -82, -56, -37, -52, -154, -313, -286, -278, -124, -193, -153, -47, -206, -302, -550, -145, 32, 180, -445, 266, 325, 282, 240, 213, 180, 128, 96, 103, 102, 112, 100, 94, 94, 83, 80, 102, -32, -113, -309, -229, -113, -25, -13, --15, -10, -41, -69, -82, -213, -300, -437, -208, -7, 184, 230, 2, 86, -31, 119, 104, 120, 153, 201, 122, 66, -5, -50, -77, --142, -128, -118, -65, -6, 45, 37, 29, -11, -29, -76, -107, -137, -162, -194, -226, -256, -279, -336, -259, -219, -143, -90, -107, -53, --202, -267, -312, -131, -230, -231, -260, -277, -295, -322, -352, -390, -318, -208, -330, -304, -247, -86, -106, -116, -120, -113, -108, -104, -129, --147, -164, -178, -188, -208, -175, -157, -142, -115, -173, -7, 49, 10, 28, 24, 59, 11, 63, 113, 89, 85, 71, 99, 102, 76, -86, 59, 106, 72, 28, -58, -22, -25, -34, -25, -23, -35, -8, -9, 7, -50, -53, -10, -10, 15, 45, 66, 160, 120, -49, --31, 39, 42, 51, 109, 30, 22, 40, 62, 64, 19, 114, 115, 98, 28, 46, -85, -45, -46, -93, -76, -73, -87, 14, 40, -60, -147, -187, -62, -75, -22, 52, 153, 480, 199, -100, -88, -30, -45, 27, 216, 61, 23, 56, 83, 144, -16, 176, 182, 163, -9, -50, -187, -120, -105, -143, -100, -63, -69, 84, 45, 123, -235, -259, 78, 38, 185, 338, 463, 937, 659, 99, 18, 240, 48, -165, 390, 120, 106, 151, 319, 344, 48, 320, 340, 190, 30, -37, -274, -144, -114, -220, -148, -145, -92, 168, 256, 368, -363, -423, -67, -35, 58, 451, 799, -1051, -580, -196, -206, -263, -61, -70, -68, 216, 348, 134, 318, 299, 177, 201, 54, -119, -286, -405, -455, --257, -264, -392, -192, -12, 126, -112, -377, -544, -718, -724, -897, 73, 342, -316, -724, -707, -72, -88, -138, -383, 55, 323, 554, 215, --66, 66, 29, 195, 184, 326, 284, 57, -24, -39, 21, -78, -2, 173, -531, -760, -545, -533, -511, -392, -1542, -1611, -1285, -1076, -1269, --1631, -991, 1435, 1244, 728, 828, 1019, 1172, 748, -185, 102, 39, 127, 71, 140, -257, 514, 629, 104, -4, -186, -187, -285, -279, -114, --184, -203, -219, -321, -411, -525, -627, -655, -1087, 595, 1325, 1079, 1468, 87, 71, 204, 169, 98, 324, 475, 410, 458, 278, -3, 250, -275, -126, 363, 421, 104, 125, -66, -278, -475, -584, -669, -881, -1101, -1325, -1335, -903, -52, 353, 577, 191, 942, 973, 563, 274, 356, -337, 164, 213, 325, 390, 308, 122, 114, 123, 12, 59, 153, 275, 404, 373, 168, 237, 259, 327, 370, 287, 213, 96, 320, 583, -972, 1101, 1210, 444, 10, -464, 55, 327, 480, 426, 224, 120, 144, 205, 182, 285, 354, 379, 351, 286, 283, 219, 188, 215, 218, -171, 54, -18, -114, -97, -114, -74, 112, -188, -374, -466, -186, 41, 278, 139, 129, 8, 306, 424, 467, 379, 276, 313, 244, 164, -107, 123, 112, 110, 97, 170, 143, 246, 178, 243, 197, 241, 236, 226, 119, 285, 327, 169, 109, 259, 442, 580, 547, 492, 456, -352, 281, 223, 186, 161, 171, 217, -24, 3, 69, 74, 99, 88, 124, 151, 180, 168, 121, 159, 160, 155, 108, 128, 138, 123, -59, 138, 106, 139, 141, 124, 72, 56, 2, -18, -35, -29, -24, -24, -15, -7, -8, -7, 76, 64, 76, 62, -7, 113, 76, --16, -28, -37, -29, -55, -69, -78, 78, 126, -63, 76, 121, 123, 101, 104, 100, 97, 103, 109, 109, 106, 97, 83, 69, 55, -62, 66, 69, 72, 121, -69, -73, -68, -69, -60, -39, -80, -58, -3, -39, -46, -45, -34, -32, -43, -45, -41, -3, -48, -56, --38, -64, -64, -46, -75, -82, -93, -54, -49, -66, -101, -117, -130, -87, -78, -73, -89, -149, -116, -7, -116, -93, -71, -29, 48, --29, -50, -46, -30, -20, -28, 14, 32, 38, 9, -69, -51, -92, -115, -40, -108, -106, -121, -18, -27, -107, -199, -225, -206, -67, --16, -21, -103, -237, -41, 54, -63, -39, -40, 10, 188, 6, -17, 2, 26, 65, 55, 92, 123, 176, 78, -46, -41, -69, -106, -28, -133, -144, -202, 23, 38, -108, -308, -408, -403, -168, -122, -58, -169, -409, -118, 99, -86, -28, 72, 138, 370, 95, 66, 104, -266, 225, 34, 184, 287, 236, 73, -163, -95, -148, -248, 41, -142, -131, -188, 138, 153, -150, -444, -577, -493, -84, 133, 255, -43, --940, -878, -622, -352, -300, -312, -275, -94, 15, 251, 186, 241, 305, 396, 225, 127, 116, 41, -91, -145, 101, 140, 258, -204, -241, --36, 33, -177, -257, -515, -477, -290, -263, -633, -1432, -1013, -1192, -389, -281, -297, -329, 189, 316, 54, 104, -18, 62, 12, 32, -86, -320, 376, 129, -45, -150, -126, -165, -291, -453, -284, -313, -537, -534, -421, -33, -702, -700, -159, -55, -125, -565, -1142, 1589, 1269, 1050, -1098, 1195, 906, 586, -85, 233, 121, 60, 72, 168, -17, 431, 469, 163, -55, -209, -160, -230, -253, -287, -657, -725, -504, -357, -266, -65, -667, -700, -681, 210, 769, 776, 1486, -158, -151, -70, 22, 153, 374, 532, 514, 325, 140, 59, 159, 89, -195, 85, 131, 84, -1, -138, -286, -403, -582, -767, -927, -908, -790, -748, -556, 28, -97, 303, 519, 1306, 1311, 423, 171, 82, 176, 253, 296, 365, 386, -307, 173, 173, 238, 237, 219, 251, 236, 485, 457, 241, 92, 116, 188, 179, 219, 274, 361, 335, 249, 440, 607, 978, 466, 237, -109, 71, 128, 206, 60, 16, 89, 118, 116, 150, 262, 340, 297, 444, 399, 229, 301, 299, 227, 125, 102, 236, 174, 99, 163, -251, 246, 195, -193, -187, -10, 118, 79, 26, -423, -427, 52, 56, 209, 462, 107, 189, 191, 209, 138, 61, 88, 102, 131, 146, -183, 242, 247, 242, 273, 281, 279, 238, 305, 406, 434, 415, 441, 509, 458, 380, 268, 137, -10, -164, -68, -35, -48, 50, 139, -236, 229, 96, 121, 41, 179, 187, 246, 319, 350, 365, 331, 310, 306, 304, 293, 233, 167, 131, 67, 34, -142, -184, -219, -281, --293, -295, -294, -256, -201, -165, -133, -110, -86, -40, -17, 3, 40, 131, 168, 102, 96, 81, 170, 140, 117, 108, 121, 127, 130, -132, 144, 147, 138, 116, 89, 78, 59, 72, 61, 59, 43, 22, -4, 17, 29, 47, 51, 65, 82, 86, 97, 114, 125, 170, --5, -47, -52, -52, -56, -81, -15, -21, -17, -47, -55, -55, -52, -48, -35, -3, 16, -22, 4, 15, 40, 4, 0, 8, -12, --15, -6, -9, -14, -9, -38, -28, 25, 15, 15, 19, -28, -119, -170, -179, -155, -132, -47, 13, 62, 17, -4, -13, -2, 14, -69, 45, 68, 93, 89, 39, 99, 53, 31, 63, -9, -26, -15, -42, -64, -72, -170, -155, -3, -10, -13, -10, -83, -325, -336, --298, -250, -214, -69, 37, 167, 34, -6, 1, 17, 62, 198, 118, 153, 214, 196, 143, 157, 83, 32, 62, -60, -90, -70, -96, --147, -120, -255, -168, 167, 115, 72, 5, -246, -402, -575, -719, -668, -451, -149, 59, 278, 79, 70, 61, 208, 193, 204, 178, 247, -320, 257, 208, 306, 216, 124, 184, -28, -91, -93, -217, -265, -282, -532, -442, 110, 80, 9, -127, -377, -551, -355, -113, -61, -212, --312, -213, 83, -10, 91, 109, 163, 268, 423, 214, 202, 328, 228, 75, -85, -77, -86, 4, -335, -456, -503, -390, -330, -678, -189, --28, -63, -179, -278, -424, -554, -777, -730, -807, -544, -139, 268, 317, -172, -78, -122, 60, -61, -52, -90, 385, 441, 218, 115, 13, --27, -47, -95, -64, -14, 74, -119, 116, -147, -602, -955, -729, 171, 238, 229, -356, -663, 1370, 1874, 1365, 1223, 1158, 685, 348, -76, -143, 37, -18, 26, 44, -56, 113, 200, 374, 14, -142, -173, 16, -65, -360, -549, -529, -533, -68, -76, -190, -896, -1057, -313, -1036, --829, 268, 849, -148, -11, -10, 248, 353, 541, 552, 490, 165, 23, 134, 47, 27, 127, 151, 163, 390, 90, -112, -150, -290, -462, --470, -383, -320, -475, -422, -694, -703, -1027, -537, 683, 1136, 1302, 922, 229, 197, 284, 291, 357, 353, 311, 240, 182, 203, 294, 490, -299, 253, 181, 398, 393, 253, 167, 108, 145, 78, 79, 61, -91, -130, -19, 241, 437, 653, 309, 243, 532, 148, 21, -242, -6, --64, -100, 10, 116, 271, 346, 376, 290, 333, 322, 302, 240, 197, 81, 92, 192, 345, 328, 315, 257, 232, 231, 240, 569, 727, -679, 524, 231, -95, -231, -194, 91, 220, 189, -42, -21, 113, -15, 55, 88, 108, 109, 143, 166, 154, 129, 126, 194, 294, 409, -298, 174, 34, 118, 211, 251, 238, 253, 214, 179, 151, 170, 53, -3, -62, 77, 165, 223, 205, 245, 326, 223, 297, 342, 300, -331, 334, 359, 359, 388, 348, 342, 328, 301, 258, 244, 187, 168, 121, 82, -34, -17, -15, -28, -21, -28, -36, -43, -1, 32, -39, 60, 78, 120, 164, 191, 220, 245, 235, 261, 240, 236, 208, 242, 232, 239, 237, 235, 230, 229, 228, 225, 205, 196, 152, -148, 138, 139, 138, 141, 140, 144, 147, 139, 158, 170, 190, 192, 193, 186, 192, 200, 207, 227, 224, 16, -42, -1, -9, -13, --34, 21, 29, 34, 13, 5, -5, 1, 11, 41, 42, 48, 40, 51, 51, 41, 29, 25, 32, 25, 17, 4, -2, -6, 20, --29, -25, 34, 5, -11, -44, -45, -139, -58, -140, -64, -97, 24, 70, 90, 45, 14, 0, 1, 27, 112, 91, 107, 125, 131, -134, 110, 67, 51, 44, 21, 1, -26, -23, -17, 61, -60, -28, 135, 96, 64, -55, -125, -263, -96, -176, -97, -193, 18, 105, -176, 75, 5, -15, -18, 59, 225, 173, 195, 216, 230, 224, 159, 84, 60, 81, 63, 33, -4, -72, -108, 74, -203, -153, 140, --15, -88, -292, -323, -330, -123, -287, -236, -287, 8, 177, 312, 96, 42, 17, 140, 184, 330, 242, 282, 348, 353, 387, 245, 149, -137, 79, 37, -3, -4, -79, -56, 223, -218, -113, 387, 245, 130, -164, -398, -588, -349, 237, 245, -156, -137, -97, 78, 61, 101, -70, 73, 182, 383, 165, 141, 268, 123, 2, -89, -241, -290, -312, 22, 18, -406, -488, -559, -652, 60, 209, -56, -240, -437, -781, --751, -719, -791, -750, -533, 57, 237, 246, -166, 3, -36, 55, 15, -15, 36, 367, 370, 240, 173, 135, 43, 60, 98, 128, -64, --10, 31, 33, -227, -1025, -716, -542, 240, 105, -2, -265, -354, 832, 1269, 1493, 1224, 1297, 453, 167, -53, 21, -27, -3, 16, -82, --24, -181, -31, 651, 183, -18, -122, -61, -168, -241, -147, -192, -575, -300, -495, -1107, -1160, -1099, -130, -1295, -1232, -580, 216, 487, 327, -217, 364, 560, 593, 542, 366, 17, -66, 47, 32, 47, 211, 103, 163, 567, 62, -67, -116, -291, -314, -233, -319, -234, -238, 38, --199, -757, -1128, -905, 554, 637, 1007, 1287, 772, 287, 382, 317, 330, 377, 284, 234, 243, 339, 390, 471, 282, 217, 181, 252, 251, -260, 136, 106, -45, -180, -267, -371, -554, -501, -367, -85, 76, 149, 506, 718, 1110, 586, 204, -34, 163, -141, -51, -11, 119, 285, -328, 346, 316, 211, 186, 310, 179, 124, 141, 252, 312, 247, 284, 262, 219, 211, 298, 475, 765, 863, 861, 653, 400, 31, 227, -245, 146, 231, 203, -27, -111, 186, 143, 145, 171, 171, 182, 202, 250, 213, 179, 132, 192, 280, 327, 203, 60, -49, -28, 46, --56, -72, -1, 8, -44, -88, -90, -28, 83, 170, 232, 282, 337, 273, 210, 199, 193, 227, 249, 289, 250, 267, 262, 237, 239, -215, 237, 236, 231, 207, 210, 192, 199, 185, 148, 119, 97, 115, 121, 140, 160, 184, 188, 179, 157, 153, 137, 134, 150, 164, -194, 206, 213, 195, 197, 206, 206, 225, 168, 179, 206, 212, 205, 205, 201, 199, 198, 178, 166, 168, 157, 146, 154, 158, 156, -154, 157, 158, 165, 167, 170, 169, 175, 175, 165, 172, 173, 178, 187, 190, -5, -45, 11, -14, -8, -20, 1, 16, 41, 22, -11, -5, 1, 11, 43, 26, 27, 45, 36, 28, 17, 3, -4, -2, -2, -10, -36, -32, -26, -3, -10, -4, 29, -11, -24, --16, -51, -131, 0, -56, -62, -106, 23, 61, 76, 32, 2, -25, -24, 4, 73, 79, 96, 95, 112, 103, 56, 8, -14, -14, --7, -20, -71, -53, -46, -21, -47, -18, 59, -14, -43, -26, -142, -261, 43, -25, 0, -136, 43, 109, 150, 76, 7, -44, -43, -21, 157, 169, 186, 188, 216, 188, 131, 41, -4, 25, 20, -12, -142, -137, -112, 15, -23, 29, 172, -50, -114, -45, -299, -445, -29, -70, -129, -234, 144, 226, 276, 127, 27, -9, 76, 143, 333, 238, 297, 337, 373, 298, 204, 75, 3, 23, 20, -31, -153, --104, -45, 0, -140, -2, 244, -7, -88, 59, -397, -575, -777, 179, 298, -210, -132, -89, 48, -88, 4, 111, 4, 94, 334, 185, -141, 168, 80, 11, 32, 31, -43, -127, 142, 157, -60, -438, -458, -187, 472, 399, -334, -359, -618, -998, -746, -209, -762, -741, -491, -60, 107, 100, -108, 19, 11, 37, 30, 5, 85, 174, 219, 381, 205, 136, -40, -46, -21, -28, -217, -319, -234, -509, -617, -737, --463, -61, 369, 48, 130, 543, 248, -247, 416, 1092, 968, 853, 140, -42, -29, -11, -5, 51, 69, -77, 104, -162, -24, 666, 225, -23, -38, -112, -158, -113, 4, 54, -95, -326, -474, -696, -452, -576, -719, -1268, -1643, -2031, -1077, 1292, 726, 526, 531, 749, 586, 464, -313, 40, -11, -2, 16, 5, 141, 16, 51, 417, -94, -231, -219, -276, -240, -209, -277, -225, -39, 188, 103, -563, -632, -657, -158, -280, 860, 1332, 1478, 132, 169, 247, 264, 361, 286, 312, 423, 389, 382, 347, 333, 271, 112, 146, 185, 299, 123, -15, -141, -245, --371, -486, -326, -256, -228, -416, -426, -381, 411, 917, 1249, 925, 496, 79, 115, 159, 172, 183, 264, 354, 325, 279, 202, 126, 106, -138, 160, 168, 265, 312, 267, 159, 194, 211, 249, 330, 447, 577, 580, 567, 655, 511, 559, 635, 564, 483, 433, 157, 152, 221, -139, -1, 26, 104, 123, 138, 155, 192, 234, 231, 229, 221, 189, 190, 152, 126, 112, 116, 15, -102, -150, -131, -190, -208, -187, --157, -133, -74, -33, 27, 80, 118, 128, 105, 46, -26, -23, 220, 225, 219, 197, 200, 178, 161, 152, 160, 176, 195, 204, 213, -231, 212, 187, 179, 159, 138, 129, 150, 166, 179, 189, 193, 189, 197, 197, 186, 156, 133, 124, 146, 176, 195, 223, 222, 237, -205, 189, 161, 204, 178, 156, 165, 166, 167, 174, 177, 183, 185, 200, 143, 164, 177, 190, 183, 182, 182, 178, 178, 182, 175, -171, 175, 186, 198, 201, 204, 206, 212, 211, 284, -5, -32, 7, 1, -2, -24, 22, 21, 22, 11, 1, -16, -11, -4, 17, -24, 30, 30, 32, 28, 19, 1, -9, -17, -16, -20, -31, -26, -21, -12, -9, -8, 4, -38, -45, -11, -39, -79, -20, -40, --47, -91, 39, 77, 62, 36, 6, -20, -23, -2, 44, 64, 89, 98, 103, 88, 65, 6, -21, -28, -19, -30, -71, -69, -60, --45, -12, -9, -6, -94, -114, -26, -83, -188, -15, -84, -59, -109, 78, 141, 124, 80, 2, -46, -50, -4, 110, 155, 180, 195, -204, 182, 152, 19, -39, -64, -81, -108, -192, -151, -112, -84, -28, -37, -30, -237, -299, -79, -213, -217, -141, -303, -360, -377, 85, -202, 222, 134, 31, -18, 36, 115, 290, 201, 269, 377, 389, 315, 248, 6, -85, -78, -80, -118, -282, -221, -168, -190, -76, -64, --76, -320, -365, -90, -243, -466, -752, 209, 449, -96, -48, 8, 206, -132, -141, 102, -23, 54, 256, 264, 245, 164, 147, 166, 196, -148, 62, -21, -162, -319, -473, -440, -238, -82, 396, 344, -264, -350, -606, -863, -584, -75, -576, -544, -357, 235, -56, -180, -159, -118, --92, -42, -10, -14, 25, -1, 102, 452, 202, 50, -77, -48, -37, 26, 113, 53, -127, -461, -513, -365, -49, -110, -409, -332, -62, -277, 164, -1285, -482, 493, 447, 298, -69, -70, 54, 25, 13, 15, 74, -61, 82, -115, 11, 480, 249, 146, 79, 128, 105, 40, -103, 123, 273, -284, -505, -639, -97, -35, -544, -597, -1207, -1949, -1586, 1840, 1130, 810, 725, 819, 592, 406, 267, 134, 76, -1, -23, --30, 178, 76, 83, 310, 13, -136, -190, -220, -213, -213, -14, -6, 92, -372, -501, -568, -259, -283, -705, -72, 546, 1149, 1837, -29, -61, 145, 201, 366, 294, 356, 502, 395, 335, 268, 381, 297, 52, 80, 147, 319, 153, 27, -50, -29, -113, -318, -250, -435, -541, --870, -757, -396, 170, 693, 992, 1102, 888, 481, 105, 425, 391, 417, 438, 407, 302, 214, 180, 72, 36, -8, 133, 238, 308, 291, -214, 181, 162, 208, 239, 261, 272, 260, 271, 301, 289, 426, 601, 819, 740, 609, 525, 215, 73, 143, 348, -27, 0, 73, 166, -240, 249, 273, 291, 283, 266, 248, 179, 128, 73, 134, 211, 287, 243, 149, 180, 184, 133, 116, 97, 89, 55, 70, 62, 83, -72, 77, 82, 58, 22, -61, -66, 234, 218, 206, 180, 174, 163, 152, 132, 136, 131, 149, 152, 168, 175, 163, 136, 113, 109, -107, 131, 136, 137, 143, 148, 155, 168, 185, 201, 208, 221, 231, 241, 234, 237, 248, 251, 210, 207, 244, 249, 246, 224, 241, -238, 245, 251, 250, 256, 258, 263, 235, 218, 231, 225, 213, 190, 187, 189, 188, 186, 185, 180, 183, 189, 199, 208, 218, 233, -227, 222, 216, 211, 258, -13, -47, -16, -15, -12, -26, 12, 15, 10, 4, -6, -23, -19, -14, 1, 11, 17, 28, 11, 3, --2, -12, -20, -26, -20, -19, -28, -12, -7, -14, -8, -12, -21, -29, -35, -32, -51, -83, -19, -26, 1, -60, 63, 88, 51, -36, 2, -36, -39, -17, 20, 58, 82, 82, 69, 63, 32, -9, -28, -44, -38, -41, -66, -28, -27, -56, -40, -38, -54, -64, --64, -48, -95, -178, -2, -28, 14, -93, 130, 172, 108, 98, 16, -66, -77, -31, 76, 158, 190, 175, 156, 129, 90, -15, -49, --84, -64, -66, -100, -27, 6, -56, -9, -16, -98, -100, -126, -146, -224, -79, 138, 27, 6, -173, 180, 264, 238, 156, 28, -37, --15, 86, 259, 229, 270, 336, 327, 281, 200, 24, -42, -99, -93, -91, -162, -68, -77, -200, -113, -93, -156, -131, -91, -96, -206, --666, -630, -21, 249, -8, 108, 141, 193, -73, -135, 10, -44, 36, 181, 312, 328, 175, 199, 202, 79, -67, -96, -55, -152, -254, --408, -78, 51, 180, 242, 97, -109, -458, -664, -704, -724, 69, -542, -447, -208, 255, -82, -302, -303, -169, -117, -110, 3, -15, -13, --65, 38, 403, 192, 93, 69, 111, 102, 102, 211, 44, -400, -409, -379, -344, 66, 125, -213, -52, 16, 141, 202, -1692, -1084, -294, --136, -200, -243, -116, 62, 28, 7, -66, -15, -100, -4, -82, 8, 313, 259, 235, 74, 95, 100, 29, 109, 49, -34, -194, -271, --386, -138, -40, -348, -393, -833, -1201, -1762, 1686, 1557, 1230, 1064, 907, 690, 416, 159, 159, 89, 0, 2, 3, 113, 82, 115, 242, -191, 93, -75, 21, 41, -27, 209, 55, -245, -798, -884, -610, -126, -94, -612, -688, -301, 666, 1318, 128, 142, 192, 284, 414, 328, -340, 390, 342, 284, 211, 289, 220, 79, 43, 77, 265, 122, 61, -42, -104, -159, -265, -496, -701, -765, -991, -861, -390, -172, 244, -690, 998, 1018, 870, 380, 311, 337, 413, 402, 352, 254, 198, 211, 105, 71, 61, 84, 171, 211, 250, 230, 237, 124, 133, 75, --2, -67, -151, 32, 135, 85, 425, 607, 692, 758, 699, 464, 252, 143, 108, 237, 124, 157, 166, 232, 305, 307, 308, 315, 297, -284, 235, 236, 172, 150, 176, 244, 305, 296, 278, 250, 303, 367, 396, 333, 280, 216, 227, 230, 266, 155, 66, 4, 45, 57, -30, 72, 163, 149, 175, 140, 140, 136, 121, 118, 96, 100, 94, 99, 107, 110, 125, 135, 121, 140, 140, 225, 193, 140, 126, -99, 86, 72, 103, 124, 155, 178, 210, 218, 198, 183, 183, 175, 113, 99, 142, 161, 203, 129, 165, 206, 205, 200, 200, 192, -189, 184, 151, 140, 198, 179, 169, 193, 166, 159, 140, 130, 118, 96, 107, 109, 108, 116, 122, 137, 133, 131, 125, 117, 128, -17, 3, 27, 5, -2, -33, 30, 26, 2, 4, -6, -28, -26, -23, -9, 22, 38, 15, 14, 11, 13, 12, 9, 1, 8, -10, 1, 27, 30, 19, 6, 0, 7, -4, -5, 3, 1, -4, 56, 21, 46, -29, 81, 103, 55, 67, 33, -30, -25, -6, -22, 80, 105, 89, 64, 36, 11, 3, -8, -30, -12, -1, -20, 55, 56, 16, -17, -34, -8, -32, -27, 2, -27, -20, 55, -51, 63, -89, 147, 178, 87, 116, 48, -82, -74, -39, 36, 174, 207, 161, 109, 79, 26, -1, -16, -61, -16, -4, -54, 110, -121, 43, -37, -88, -38, -101, -101, 8, -30, 12, 204, 246, 176, -89, 246, 310, 229, 212, 52, -73, -68, 43, 195, 294, 335, -275, 242, 183, 63, -6, -40, -123, -53, -23, -72, 175, 157, 10, -94, -149, -58, -115, -86, 102, 3, -415, -592, -429, -144, 19, -176, 165, 35, -111, -155, -41, -73, 17, 148, 311, 322, 115, 172, 134, 71, 3, -27, 14, 62, 40, -60, 90, 216, 384, 101, --77, -93, -335, -393, -336, -422, 48, -188, -187, -77, -10, -108, -181, -207, -144, -111, -131, 28, 27, 5, -64, 16, 316, 226, 192, -82, 9, -48, -140, -217, -320, -394, -338, -244, 130, 112, 123, -70, 63, 56, 31, -24, -1515, -1212, -708, -423, -318, -241, -147, -34, --18, 17, -56, -37, -86, -38, -44, -61, 50, 155, 174, 28, -41, -52, -13, 11, -149, -398, -442, -339, -15, -86, -173, -376, -483, --530, -482, -1346, 1084, 1468, 1438, 1161, 953, 655, 380, 77, 119, 48, -24, 33, 23, -11, 11, 74, 119, 227, 217, -32, 118, 104, --8, -125, -273, -442, -524, -493, -309, -356, -387, -359, -979, -833, 187, 548, 694, 443, 363, 410, 433, 375, 353, 345, 314, 256, 162, -159, 137, 176, 32, 4, 109, 73, 36, -215, -395, -416, -351, -425, -449, -639, -532, -612, -806, -624, -337, 124, 609, 970, 1208, 904, -183, 262, 316, 312, 245, 219, 190, 175, 185, 183, 180, 109, 106, 147, 241, 290, 311, 152, 57, -24, -107, -187, -269, -197, -138, --30, 214, 401, 524, 693, 713, 589, 421, 252, 152, 136, 249, 298, 280, 304, 340, 322, 301, 288, 292, 298, 304, 311, 269, 250, -239, 246, 254, 254, 249, 245, 294, 334, 358, 383, 396, 410, 408, 396, 390, 259, 160, 90, 128, 152, 133, 196, 93, 78, 95, -82, 83, 80, 76, 75, 78, 94, 95, 110, 125, 140, 175, 229, 255, 292, 291, 417, 380, 334, 305, 266, 236, 204, 206, 204, -215, 218, 220, 193, 165, 138, 124, 110, 79, 66, 84, 92, 112, 80, 98, 118, 119, 115, 115, 111, 109, 103, 124, 134, 140, -167, 181, 217, 180, 173, 158, 147, 134, 116, 115, 106, 93, 88, 85, 88, 91, 93, 91, 84, 74, 47, 42, 43, 43, 35, --3, 57, 53, 25, 35, 25, -2, 2, 6, 10, 46, 64, 44, 44, 39, 34, 37, 34, 23, 31, 37, 35, 63, 62, 35, -21, 15, 36, 18, 20, 38, 39, 52, 63, 83, 71, -16, 82, 108, 63, 90, 65, -6, 4, 15, 27, 97, 120, 113, 74, -35, 11, 20, 15, -4, 18, 33, 23, 104, 96, 28, 2, 3, 81, 50, 55, 75, 53, 31, 18, 69, 58, -92, 152, 171, -64, 130, 73, -81, -47, -25, 1, 164, 206, 191, 112, 63, -3, 10, -9, -62, -26, 6, -24, 166, 159, -15, -78, -123, 25, --40, -34, 24, 39, 14, 50, 181, 84, -194, 174, 285, 167, 243, 88, -106, -86, 14, 108, 300, 349, 262, 178, 62, -54, -52, --63, -117, -39, -5, -82, 231, 186, -80, -116, -78, 182, 151, 150, 143, 57, -94, -479, -622, -309, 152, 169, 128, 6, -130, -181, --67, -69, 15, 118, 265, 296, 183, 190, 162, 215, 93, -11, -64, -143, -137, -11, 118, 241, 445, -88, -410, -405, -599, -546, -317, --65, -247, 12, 159, 57, -204, -281, -243, -94, -131, -116, -136, 26, 44, -14, -46, -12, 118, 187, 169, 23, -87, -165, -219, -205, --219, -185, -265, -203, 98, 71, 176, 202, 318, 256, 48, -291, -710, -1183, -938, -625, -354, -169, -56, -87, -20, 49, -28, 11, -9, --26, 19, -71, -153, 132, 198, 12, -84, -170, -195, -306, -399, -435, -368, -218, 54, -195, -415, -579, -521, -279, -106, -357, 389, 849, -1232, 1023, 852, 478, 244, 28, 78, 12, -37, 16, -3, -64, -25, -2, -76, 206, 226, -100, -17, -54, -67, -216, -289, -440, -261, --275, -416, -501, -439, -324, -663, -804, -639, -139, 1135, 815, 625, 554, 463, 435, 401, 364, 310, 214, 77, 53, 83, 222, 78, 36, -15, 27, -59, -285, -379, -483, -522, -411, -360, -511, -187, -214, -622, -631, -643, -527, 163, 741, 1136, 1194, 252, 253, 253, 252, 194, -210, 220, 204, 272, 285, 241, 211, 171, 161, 195, 226, 219, 180, 81, -46, -97, -129, -148, -370, -422, -290, -149, 0, 153, 415, -603, 693, 688, 553, 373, 295, 288, 308, 306, 314, 340, 292, 238, 189, 222, 230, 286, 257, 270, 233, 250, 233, 238, 251, 267, -334, 355, 350, 384, 446, 506, 552, 544, 545, 543, 434, 347, 301, 259, 247, 225, 273, 132, 136, 92, 124, 106, 103, 122, 113, -139, 139, 151, 158, 178, 198, 241, 278, 321, 362, 411, 402, 375, 370, 339, 325, 300, 279, 253, 226, 208, 194, 181, 147, 146, -138, 130, 127, 110, 116, 77, 65, 53, 96, 76, 63, 65, 73, 76, 86, 89, 89, 114, 131, 135, 143, 158, 161, 164, 168, -174, 174, 177, 184, 167, 153, 135, 123, 111, 100, 109, 113, 118, 116, 106, 45, 33, 18, 41, 44, 16, 55, 59, 43, 57, -49, 26, 30, 32, 30, 50, 61, 76, 57, 47, 35, 37, 35, 28, 33, 39, 50, 58, 48, 4, 13, 17, 42, 33, 39, -53, 39, 48, 30, 92, 76, -5, 76, 93, 57, 83, 67, 12, 11, 16, 25, 83, 106, 127, 84, 49, 25, 29, 20, 8, -10, 32, 70, 96, 65, -38, -22, -4, 78, 49, 59, 78, 57, 11, -43, 39, 57, -99, 139, 151, 42, 118, 82, -49, -29, --21, -1, 122, 179, 221, 132, 66, 8, 23, 2, -32, -20, 23, 86, 138, 79, -150, -111, -99, 60, 25, 63, 93, 32, 84, -52, 231, 171, -171, 126, 253, 139, 236, 112, -107, -92, -7, 65, 255, 298, 286, 178, 62, -28, -18, -45, -86, -66, 5, 115, -185, 58, -243, -165, -71, 194, 123, 171, 135, 81, -97, -327, -701, -415, 311, 187, 107, 18, -113, -166, -93, -36, 36, 65, 186, -259, 327, 212, 167, 201, 84, 19, -25, -196, -170, 54, 123, 119, 189, -345, -531, -301, -399, -326, -178, 2, -231, -78, 213, 85, --351, -434, -390, -186, -144, -92, -125, 3, 10, -44, -35, -43, -51, 145, 175, 19, -68, -153, -204, -119, -143, -234, -58, 41, 199, -83, 35, -15, 135, 116, -24, -205, 108, -649, -783, -582, -417, -144, 20, -50, -31, 35, -19, 18, 24, -5, 86, -28, -207, 155, -202, -48, -107, -211, -296, -351, -334, -317, -149, -215, -399, -398, -453, -622, -419, -189, -66, 243, -426, 201, 806, 757, 622, 260, 58, --52, 25, -24, -63, -23, -36, -118, -77, -60, -148, 193, 200, -83, -127, -197, -120, -191, -250, -410, -278, -227, -240, -198, -247, -560, --308, -523, -1190, -789, 1222, 1121, 854, 696, 547, 526, 484, 380, 274, 161, 12, 0, 59, 188, 107, 56, -59, -49, -115, -220, -233, --341, -386, -373, -270, -88, -21, -71, -218, -457, -651, -871, -340, 225, 692, 1091, 458, 327, 300, 312, 255, 271, 293, 291, 321, 315, -281, 278, 218, 108, 73, 74, 95, 136, 72, -60, -119, -175, -201, -384, -486, -567, -604, -505, -249, 47, 408, 726, 946, 948, 774, -596, 367, 332, 303, 298, 304, 252, 187, 129, 142, 151, 175, 166, 187, 169, 211, 209, 221, 257, 325, 363, 349, 349, 349, 393, -448, 494, 560, 619, 666, 591, 528, 503, 421, 382, 353, 366, 219, 216, 159, 209, 186, 178, 206, 204, 233, 221, 224, 225, 233, -237, 236, 227, 250, 254, 273, 193, 204, 239, 252, 274, 281, 290, 264, 246, 245, 257, 277, 291, 285, 273, 254, 233, 232, 236, -181, 150, 100, 206, 158, 108, 108, 114, 117, 122, 123, 124, 167, 200, 138, 160, 179, 193, 221, 229, 244, 255, 270, 292, 284, -280, 270, 263, 253, 245, 242, 241, 241, 240, 263, 39, 27, 2, 26, 33, 19, 48, 51, 37, 50, 47, 35, 31, 30, 31, -44, 53, 78, 59, 52, 41, 39, 36, 32, 29, 33, 59, 41, 29, -12, 10, 17, 35, 35, 40, 51, 36, 13, -8, 68, -67, 22, 65, 70, 46, 70, 62, 31, 12, 13, 29, 68, 92, 132, 97, 70, 52, 49, 35, 25, 12, 32, 101, 48, -4, --91, -45, -6, 61, 62, 67, 72, 33, 4, -68, 11, 28, -54, 117, 118, 25, 94, 80, 1, -14, -21, 14, 91, 159, 231, -160, 99, 52, 63, 35, 14, -3, 31, 170, 73, -3, -210, -119, -68, 43, 73, 85, 132, 53, 0, -13, 240, 195, -70, 113, -206, 102, 208, 124, -79, -100, -30, 62, 216, 265, 312, 197, 114, 47, 63, 20, -19, -39, 40, 270, 83, -134, -385, -213, -42, -152, 164, 189, 186, 89, -67, -204, -732, -516, 341, 177, 88, 11, -89, -138, -108, -8, 48, 16, 117, 217, 390, 207, 132, 99, -97, 95, 54, -10, 8, 121, 166, 195, 235, -453, -583, -209, -230, -161, -137, -3, -72, -53, 249, 136, -351, -397, -341, -218, -158, --82, -104, -23, 2, -19, 0, -43, -115, 129, 182, 50, -6, -96, -131, -132, -126, -185, 30, 0, -98, 4, -33, -229, 6, -63, --380, -176, 295, -115, -404, -381, -297, -133, 7, -57, -71, 0, 10, -4, 2, 4, 90, -23, -171, 108, 119, -79, -119, -200, -229, --261, -246, -255, -61, -100, -371, -392, -399, -513, -165, 21, 120, 380, -1268, -374, 228, 320, 295, -2, -140, -199, -67, -85, -112, -37, --20, -127, -99, -93, -119, 106, 125, 25, -91, -179, -144, -144, -138, -190, -150, -143, -139, -143, -219, -474, -236, -502, -1187, -1385, 1140, -1304, 1051, 865, 666, 684, 615, 403, 259, 141, 33, 2, 28, 92, 68, 22, -93, -77, -116, -144, -143, -147, -111, -149, -66, 69, --137, -262, -231, -351, -506, -771, -698, -307, 361, 816, 568, 426, 396, 406, 344, 368, 359, 297, 327, 325, 323, 296, 210, 54, -18, --24, 26, 107, 82, -38, -147, -255, -336, -380, -473, -604, -734, -698, -475, -291, 51, 476, 840, 966, 888, 707, 519, 439, 362, 319, -267, 231, 184, 143, 138, 151, 141, 167, 169, 204, 205, 202, 189, 180, 229, 178, 146, 165, 142, 204, 258, 316, 457, 571, 669, -694, 719, 751, 642, 592, 580, 552, 363, 349, 246, 332, 295, 301, 325, 318, 331, 309, 290, 289, 275, 259, 233, 219, 218, 197, -170, 142, 187, 232, 271, 313, 351, 388, 383, 384, 398, 422, 448, 493, 474, 452, 418, 381, 357, 364, 307, 278, 229, 328, 282, -233, 227, 229, 233, 229, 231, 233, 265, 287, 220, 250, 261, 281, 304, 317, 335, 348, 362, 382, 382, 387, 389, 392, 391, 395, -380, 375, 371, 369, 385, 40, 23, 8, 22, 28, 24, 41, 37, 27, 37, 37, 37, 25, 23, 25, 37, 48, 67, 56, 55, -51, 47, 44, 40, 34, 37, 62, 34, 22, 6, 18, 26, 39, 47, 45, 31, 29, -8, -20, 31, 51, 40, 43, 44, 40, -58, 58, 48, 22, 19, 31, 61, 85, 121, 105, 85, 74, 74, 59, 49, 31, 34, 86, 4, -35, -59, -41, -9, 32, 61, -56, 14, 3, -56, -127, -15, 22, 10, 80, 66, 21, 66, 74, 44, 13, -9, 21, 78, 141, 216, 178, 138, 94, 104, 76, -55, 22, 34, 156, 2, -59, -140, -86, -29, 40, 122, 98, 6, -8, -157, -192, 60, 102, -18, 63, 125, 56, 160, 120, -31, --86, -37, 55, 184, 247, 318, 212, 156, 110, 135, 88, 53, 6, 33, 179, -62, -241, -311, -207, -57, 39, 141, 106, -29, -63, --31, -70, -573, -462, 282, 175, 109, 6, -40, -80, -99, 15, 41, -9, 90, 190, 354, 229, 152, 74, 133, 122, 81, 60, 61, -138, 151, 222, 407, -253, -369, -53, 67, 119, 8, -9, -3, 26, 249, 157, -228, -308, -260, -133, -127, -73, -69, -25, 20, 33, -55, -3, -84, 85, 127, 105, 60, -29, -64, -113, -73, -5, -99, -175, -236, -256, -229, -303, -139, -209, -505, -154, 275, 101, -201, --269, -234, -161, -52, -144, -102, -10, 27, -6, -8, 16, 49, -27, -95, 67, 65, -9, -83, -140, -72, -141, -134, -62, -102, -105, --186, -323, -338, -291, 9, 142, 192, 300, -1617, -843, -345, -168, -80, -265, -294, -306, -155, -129, -115, -17, 11, -59, -57, -74, -91, --16, 31, 143, 8, -76, -96, -129, -85, -1, -60, -110, -110, -214, -238, -159, -343, -584, -808, -1521, 904, 1168, 1114, 955, 747, 817, -688, 366, 241, 121, 86, 9, -17, -9, 13, 1, -94, 34, 4, -51, -97, -88, -37, -9, -65, -216, -331, -368, -318, -317, -373, --462, -784, -641, -48, 473, 587, 497, 485, 468, 398, 407, 383, 317, 354, 349, 348, 291, 210, 113, 13, -9, -3, 44, 37, -62, --180, -270, -360, -409, -467, -436, -522, -546, -479, -482, -360, -98, 397, 667, 684, 642, 638, 525, 441, 394, 319, 287, 260, 216, 196, -201, 171, 209, 212, 259, 230, 206, 173, 101, 70, -19, -31, -17, -22, 58, 115, 169, 248, 328, 398, 556, 723, 863, 805, 780, -817, 720, 515, 523, 420, 479, 434, 433, 432, 416, 415, 392, 364, 353, 325, 293, 267, 258, 254, 241, 209, 218, 259, 286, 308, -332, 360, 390, 416, 437, 446, 467, 471, 513, 513, 521, 517, 508, 449, 468, 420, 394, 353, 418, 380, 343, 333, 327, 325, 314, -310, 307, 335, 348, 290, 316, 324, 340, 351, 364, 382, 393, 403, 413, 418, 428, 443, 450, 458, 462, 455, 451, 446, 453, 453, -48, 23, 19, 31, 39, 44, 47, 37, 34, 37, 41, 50, 34, 32, 30, 43, 52, 65, 64, 65, 60, 57, 55, 50, 44, -43, 60, 28, 17, 13, 22, 31, 38, 51, 51, 31, 29, 9, 8, 24, 57, 79, 42, 32, 48, 53, 59, 75, 40, 31, -33, 61, 83, 113, 115, 105, 90, 90, 76, 63, 44, 36, 71, -20, -47, -35, -19, 11, 26, 65, 61, 4, 11, -71, -98, --27, 50, 95, 57, 34, 42, 48, 73, 98, 44, 11, 24, 76, 130, 195, 193, 174, 123, 129, 102, 75, 41, 35, 119, -68, --120, -127, -76, -16, 12, 101, 97, -50, -62, -95, -112, -12, 82, 93, 17, 48, 49, 113, 108, 35, -46, -26, 35, 145, 215, -300, 237, 201, 152, 171, 123, 77, 25, 17, 110, -169, -289, -245, -148, -16, -13, 105, 89, -140, -115, -109, -119, -378, -303, 231, -215, 178, 37, 8, -24, -62, 38, 39, -12, 91, 181, 303, 274, 231, 130, 128, 91, 58, 22, 33, 155, 5, 37, 280, -216, --258, 25, 178, 215, 45, 16, 150, 202, 109, 45, -181, -257, -227, -117, -94, -44, -35, -30, 9, 42, 84, 35, -14, 53, 83, -166, 94, 11, -56, -66, -55, -25, -173, -212, -102, -183, -199, -154, -351, -451, -486, -89, 175, 213, 1, -129, -302, -167, -91, -187, --122, -29, 16, 6, 19, 38, 37, 11, -3, 72, 76, 142, 15, -23, 51, -2, -3, 19, -36, -100, -165, -264, -237, -36, 171, -252, 205, 123, -1188, -1069, -753, -535, -396, -375, -302, -276, -179, -125, -63, -2, 17, -13, -4, -34, -72, -68, -3, 195, 50, -25, --103, -102, -90, -91, -75, -56, 0, -135, -216, -119, -387, -486, -469, -989, 417, 742, 945, 873, 731, 782, 593, 234, 168, 72, 83, -8, -30, -58, 7, 19, -58, 81, 74, 66, -17, -65, -26, -64, -199, -332, -247, -253, -335, -314, -320, -315, -588, -678, -531, 17, -627, 601, 583, 530, 444, 392, 395, 435, 410, 372, 341, 276, 233, 224, 116, 53, -26, -45, -80, -138, -232, -283, -320, -400, -385, --259, -328, -367, -425, -492, -540, -521, -142, 212, 453, 568, 622, 547, 505, 472, 422, 399, 377, 334, 289, 275, 228, 234, 225, 224, -204, 174, 149, 86, 19, -33, -37, -52, -62, -37, -37, -42, -38, -17, -12, 240, 497, 731, 747, 752, 811, 698, 531, 553, 540, -523, 504, 490, 478, 462, 456, 436, 416, 397, 371, 342, 321, 299, 285, 271, 265, 233, 261, 285, 304, 325, 350, 375, 408, 436, -443, 452, 429, 445, 448, 473, 489, 511, 459, 468, 462, 455, 440, 445, 432, 411, 402, 394, 389, 381, 376, 374, 380, 375, 360, -359, 355, 333, 350, 361, 374, 384, 394, 404, 409, 417, 432, 436, 445, 448, 451, 450, 447, 454, 473, 61, 38, 30, 42, 51, -69, 58, 45, 45, 41, 46, 65, 45, 41, 35, 52, 62, 65, 73, 76, 74, 70, 66, 61, 58, 55, 63, 31, 22, 17, -39, 50, 53, 66, 66, 46, 45, 34, 21, 39, 78, 139, 53, 34, 67, 58, 68, 104, 57, 45, 41, 65, 87, 110, 127, -121, 106, 105, 92, 77, 68, 54, 67, -26, -52, -45, 8, 44, 43, 79, 71, 16, 35, -18, -48, 10, 80, 213, 57, 28, -85, 47, 75, 153, 67, 25, 33, 78, 127, 179, 206, 197, 152, 147, 119, 92, 73, 54, 97, -95, -145, -151, -28, 52, 40, -122, 112, -5, 3, 19, -1, 70, 151, 300, 37, -1, 73, 84, 107, 120, -5, -20, 33, 122, 196, 275, 269, 251, 196, 209, -162, 116, 84, 61, 99, -204, -310, -280, -73, 63, 9, 110, 84, -108, -15, -114, -202, -287, -213, 104, 197, 220, 116, 45, -5, --40, 51, 53, 4, 99, 174, 261, 318, 298, 139, 132, 92, 46, 14, 29, 106, -13, -19, 58, -171, -124, 182, 217, 250, 159, -64, 256, 501, 51, -71, -119, -176, -180, -140, -83, -26, -18, -45, -13, 32, 89, 60, 48, 43, 68, 197, 119, 68, 31, -39, --76, -110, -150, -123, -17, -38, -83, -17, -498, -607, -393, -90, -20, 154, 158, 10, -316, -152, -76, -169, -128, -53, 9, 6, 36, -39, 47, 57, 71, 64, 84, 284, 111, 66, 103, 115, 83, -39, -52, -101, -113, -118, -69, 88, 290, 284, 78, -20, -463, -921, --901, -716, -557, -345, -207, -204, -156, -102, -17, 0, 17, 5, 21, -11, -34, -65, -14, 217, 96, 30, -68, -119, -199, -226, -169, --106, -12, -30, -138, -251, -336, -368, -417, -312, -280, 139, 533, 584, 553, 551, 348, 56, 54, 4, 29, 16, -8, -64, 26, 49, -17, 19, 29, 122, 4, -77, -93, -188, -211, -118, -117, -153, -178, -252, -268, -256, -295, -485, -745, -492, 690, 749, 723, 652, 570, -441, 449, 561, 463, 388, 314, 259, 249, 274, 168, 62, -65, -106, -159, -149, -221, -247, -200, -283, -261, -220, -272, -297, -375, -443, --536, -625, -520, -213, 264, 504, 494, 490, 480, 465, 440, 448, 442, 427, 372, 343, 290, 246, 198, 141, 138, 120, 103, 89, 56, -36, -4, -54, -102, -140, -183, -231, -234, -243, -270, -52, 149, 342, 447, 510, 589, 517, 456, 481, 524, 482, 491, 479, 469, 467, -444, 425, 410, 385, 364, 338, 312, 257, 227, 189, 197, 82, 109, 150, 180, 210, 236, 257, 277, 307, 328, 338, 328, 336, 343, -367, 395, 434, 425, 427, 445, 451, 453, 437, 442, 438, 430, 421, 412, 406, 400, 396, 376, 358, 373, 344, 328, 275, 305, 306, -312, 318, 327, 337, 350, 361, 375, 381, 394, 406, 411, 413, 412, 416, 477, 73, 53, 49, 53, 62, 96, 66, 54, 62, 52, -57, 81, 58, 52, 46, 60, 69, 71, 80, 85, 87, 80, 76, 71, 70, 64, 60, 38, 31, 28, 57, 67, 59, 79, 78, -55, 59, 51, 42, 52, 98, 181, 66, 42, 86, 66, 76, 121, 70, 58, 52, 73, 92, 108, 134, 130, 120, 114, 101, 88, -86, 63, 39, -28, -43, -36, 40, 72, 40, 89, 78, 26, 45, 17, -25, 31, 98, 284, 62, 31, 120, 57, 77, 182, 78, -37, 45, 83, 126, 161, 207, 208, 173, 153, 124, 102, 93, 57, 26, -106, -143, -146, 23, 97, 16, 142, 125, 14, 38, 35, --5, 79, 181, 417, 60, -26, 111, 71, 110, 195, 28, -18, 51, 122, 192, 253, 282, 277, 222, 211, 168, 140, 121, 52, -29, --247, -314, -278, 2, 100, -40, 105, 71, -82, -2, -15, -131, -231, -187, -47, 147, 240, 190, 76, 0, -35, 55, 71, 32, 117, -173, 227, 341, 318, 162, 167, 102, 36, 25, 41, 72, 62, 43, -49, -71, 18, 270, 247, 292, 328, 140, 167, 652, 60, -119, --50, -72, -95, -111, -40, -4, -15, -42, -14, 44, 90, 78, 92, 35, 49, 177, 104, 67, 44, -71, -105, -78, -84, -19, 73, -66, 0, 44, -499, -605, -281, -173, -96, -17, 89, 4, -306, -208, -117, -131, -124, -70, 6, 0, 37, 34, 48, 87, 138, 51, -91, 345, 160, 92, 79, 4, -11, 39, -121, -173, -114, -38, 46, 101, 308, 256, -14, -30, -4, -456, -801, -731, -570, -298, -129, --137, -118, -64, -1, -4, 10, 35, 34, -5, -5, -42, 18, 206, 107, 46, -56, -145, -214, -123, -157, -111, -12, -9, -90, -300, --307, -329, -367, 11, -906, -502, 24, 213, 280, 217, 52, -101, -65, -66, -10, 41, 27, -41, 21, 52, 91, -22, -32, 89, 15, --35, -130, -138, -116, -78, -185, -177, -59, -135, -143, -150, -118, -296, -674, -864, 649, 803, 818, 734, 679, 535, 507, 583, 497, 409, -279, 240, 228, 220, 145, 39, -72, -119, -136, -74, -142, -166, -133, -166, -157, -156, -154, -191, -302, -330, -428, -563, -603, -436, -13, -358, 367, 442, 443, 456, 454, 465, 470, 471, 420, 381, 343, 272, 203, 132, 117, 103, 82, 62, 35, -38, -109, -151, -210, -254, --295, -340, -354, -376, -414, -298, -203, -111, 73, 216, 334, 336, 355, 372, 444, 390, 418, 423, 413, 421, 376, 348, 330, 292, 266, -239, 214, 156, 108, 61, 62, -24, -1, 16, 30, 46, 58, 66, 100, 141, 180, 209, 234, 254, 261, 271, 300, 333, 330, 323, -386, 414, 450, 372, 414, 449, 439, 430, 417, 412, 406, 398, 337, 293, 361, 307, 271, 207, 227, 223, 225, 225, 226, 224, 244, -258, 272, 283, 296, 315, 317, 320, 319, 322, 379, 86, 68, 71, 73, 80, 115, 78, 68, 79, 67, 70, 92, 72, 66, 61, -74, 80, 79, 92, 97, 100, 91, 86, 82, 80, 73, 56, 47, 44, 40, 74, 83, 66, 90, 89, 67, 72, 72, 89, 85, -127, 204, 82, 55, 100, 78, 88, 128, 85, 74, 67, 84, 98, 109, 141, 142, 140, 123, 110, 98, 94, 63, 11, -23, -25, --19, 72, 100, 47, 104, 91, 41, 58, 43, 38, 67, 128, 308, 76, 43, 134, 69, 81, 182, 85, 53, 58, 91, 123, 139, -203, 213, 195, 162, 131, 107, 97, 44, -45, -110, -122, -114, 70, 130, 15, 144, 136, 33, 60, 72, 83, 124, 236, 472, 80, --25, 137, 73, 109, 233, 52, -7, 67, 130, 182, 222, 286, 288, 246, 211, 169, 143, 114, 8, -158, -277, -279, -233, 65, 144, --38, 130, 81, -70, -1, 29, -39, -190, -198, -129, 130, 268, 238, 104, 4, -33, 55, 83, 58, 146, 183, 206, 317, 309, 235, -168, 78, 26, 18, 37, 61, 91, 82, -46, 71, 124, 185, 186, 296, 506, 210, 73, 681, 56, -141, -8, -40, -43, -61, 16, -47, 3, -25, -2, 66, 82, 95, 121, 54, 50, 147, 71, 33, -26, -66, -72, -20, 23, 96, 160, 89, 81, 186, -330, -485, --257, -242, -69, -81, -33, -57, -270, -252, -190, -89, -110, -80, -4, 9, 49, 29, 57, 110, 153, 39, 95, 312, 155, 101, 28, --1, -2, 48, -90, -107, 0, 30, 89, 117, 242, 233, 10, 8, 160, -6, -531, -610, -480, -253, -86, -65, -72, -12, 17, -9, -1, 68, 53, 23, 23, 28, 65, 121, 74, 44, -42, -17, -47, -54, -155, -137, -39, -88, -120, -223, -317, -350, -267, 38, -1127, --950, -413, -119, 23, -81, -184, -186, -157, -128, -35, 59, 57, -4, 13, 38, 113, -14, -30, 91, 96, 57, -88, -110, -131, -130, --178, -130, -70, -61, -56, -85, -98, -230, -465, -908, 377, 634, 733, 652, 646, 536, 488, 533, 480, 405, 255, 216, 176, 131, 113, -47, -16, -72, -72, -40, -91, -105, -117, -79, -85, -74, -78, -123, -236, -228, -310, -467, -529, -503, -319, 62, 279, 414, 434, 471, -510, 488, 476, 459, 417, 367, 347, 285, 246, 193, 147, 111, 68, 4, -71, -174, -237, -278, -336, -355, -374, -395, -435, -472, -516, --469, -435, -407, -204, -20, 127, 213, 226, 248, 343, 274, 312, 331, 321, 338, 275, 244, 217, 163, 123, 88, 88, 63, 26, 9, -28, 1, 2, -12, -24, -35, -50, -67, -28, 10, 43, 71, 101, 117, 132, 137, 165, 193, 166, 155, 238, 284, 357, 218, 290, -370, 353, 341, 324, 318, 310, 295, 213, 154, 275, 201, 157, 98, 99, 90, 84, 76, 69, 55, 73, 82, 95, 104, 114, 128, -135, 145, 150, 157, 165, 92, 80, 82, 85, 90, 121, 81, 75, 86, 77, 79, 95, 81, 76, 72, 79, 83, 84, 96, 101, -107, 96, 91, 86, 84, 75, 55, 53, 53, 51, 80, 88, 74, 94, 94, 76, 83, 91, 111, 120, 147, 204, 89, 60, 100, -87, 100, 122, 97, 87, 75, 86, 95, 107, 140, 148, 158, 132, 117, 102, 95, 64, 4, -12, -9, -4, 81, 104, 54, 103, -94, 50, 72, 88, 87, 119, 153, 298, 80, 49, 131, 82, 91, 159, 94, 71, 61, 91, 113, 119, 191, 209, 216, 169, 136, -107, 96, 36, -68, -97, -94, -70, 75, 127, 36, 133, 143, 55, 97, 138, 173, 221, 313, 492, 99, -25, 135, 81, 115, 241, -73, 14, 72, 131, 159, 181, 277, 295, 295, 230, 182, 141, 110, 2, -186, -260, -225, -171, 74, 131, -21, 125, 76, -60, 35, -39, -28, -175, -233, -191, 117, 290, 279, 143, 14, -43, 49, 87, 74, 170, 191, 197, 249, 257, 255, 113, 46, 40, 15, 18, -19, 128, 110, -130, 133, 184, 85, 150, 326, 638, 288, 11, 598, 96, -96, 58, -83, -83, -40, 33, 79, 43, -1, 13, 73, -68, 106, 141, 106, 97, 143, 88, 60, -10, -12, 8, 73, 82, 151, 221, 85, 101, 247, -182, -358, -289, -267, -106, -76, -69, --83, -198, -226, -209, -51, -93, -78, -14, 29, 68, 23, 70, 128, 130, 46, 97, 217, 158, 143, 61, 65, 36, 24, -101, -108, -61, 69, 124, 183, 149, 144, 3, -37, 124, 105, -264, -417, -341, -204, -61, 17, -27, 34, 47, -3, 7, 80, 76, 75, 81, -111, 102, 73, 108, 105, 44, 75, 64, 30, -112, -107, 10, -111, -147, -168, -256, -245, -130, 13, -885, -1030, -643, -339, -166, -291, --337, -214, -210, -172, -68, 46, 72, 38, 26, 34, 99, 17, 21, 106, 120, 72, -36, -74, -107, -108, -49, -29, -114, -29, -41, --114, -207, -293, -380, -685, -33, 257, 443, 407, 439, 409, 387, 437, 384, 332, 219, 184, 127, 87, 108, 84, 62, -7, -33, -33, --37, -37, -52, -51, -78, -89, -108, -141, -209, -152, -177, -268, -350, -418, -430, -239, 189, 359, 406, 446, 524, 479, 445, 412, 377, -330, 311, 272, 263, 225, 161, 96, 34, -36, -127, -191, -240, -299, -352, -370, -384, -401, -430, -454, -482, -497, -518, -550, -374, -206, --67, 86, 85, 113, 212, 142, 182, 196, 191, 219, 160, 139, 115, 66, 28, -3, 12, 14, 1, 5, 34, 19, -7, -34, -62, --92, -127, -167, -141, -122, -101, -81, -53, -45, -15, -2, 25, 51, 18, 12, 72, 112, 180, 57, 117, 196, 180, 167, 151, 144, -134, 117, 63, 19, 118, 60, 30, -13, -22, -35, -47, -61, -72, -91, -76, -69, -62, -57, -53, -47, -33, -19, -6, 5, -23, -89, 84, 80, 88, 93, 120, 77, 77, 89, 85, 86, 94, 88, 85, 79, 79, 80, 88, 95, 98, 103, 93, 88, 83, 81, -72, 54, 54, 54, 52, 75, 81, 72, 86, 88, 79, 85, 97, 104, 134, 142, 182, 85, 59, 89, 91, 106, 113, 105, 93, -74, 81, 88, 105, 130, 149, 158, 128, 112, 95, 87, 60, 6, -3, 0, 1, 73, 93, 61, 94, 88, 66, 82, 114, 101, -140, 144, 253, 69, 47, 113, 96, 105, 137, 104, 87, 55, 82, 98, 115, 172, 196, 221, 160, 130, 98, 89, 31, -64, -76, --68, -56, 56, 99, 41, 100, 121, 89, 125, 146, 170, 245, 313, 429, 97, -28, 110, 90, 130, 231, 90, 34, 63, 125, 136, -158, 253, 297, 328, 229, 172, 123, 90, -4, -175, -227, -190, -153, 53, 103, 16, 102, 62, 6, 70, 119, 0, -132, -236, -258, -76, 274, 306, 189, 37, -51, 41, 83, 85, 180, 183, 180, 171, 179, 198, 67, 48, 70, 29, 33, 34, 230, 194, -168, 101, -135, 15, 79, 288, 665, 350, -145, 343, 151, 23, 114, -61, -108, -57, 27, 84, 79, 27, 29, 73, 60, 113, 158, 152, 152, -135, 116, 98, 10, 32, 44, 68, 125, 153, 97, 82, 99, 170, -94, -263, -331, -320, -125, -59, -56, -79, -119, -176, -187, 2, --68, -65, -7, 40, 72, 25, 71, 133, 106, 54, 83, 120, 175, 186, 80, 91, 47, 9, -66, -65, 69, 126, 191, 244, 117, -71, -43, -70, 44, -29, -120, -223, -212, -173, -67, 86, 13, 61, 66, 15, 21, 81, 93, 118, 128, 157, 138, 79, 142, 145, -90, 131, 127, 41, 5, -3, -6, -122, -171, -204, -139, -76, -55, 38, -482, -748, -638, -444, -287, -380, -373, -215, -224, -185, -98, -10, 61, 69, 50, 50, 97, 56, 67, 94, 123, 99, 41, -15, -52, -87, -19, -13, -105, 24, -29, -205, -298, -353, -386, -417, --352, -122, 88, 125, 174, 242, 258, 284, 228, 197, 145, 155, 119, 104, 108, 98, 103, 16, -22, -15, 22, 34, 33, -47, -81, --125, -116, -136, -187, -132, -79, -10, -130, -245, -343, -392, 52, 218, 297, 329, 426, 391, 356, 338, 322, 292, 286, 244, 236, 194, -139, 71, 16, -30, -91, -110, -159, -230, -284, -308, -328, -357, -351, -351, -347, -403, -477, -559, -453, -339, -241, -66, -16, 16, 92, -38, 72, 77, 82, 108, 71, 60, 47, 17, -3, -21, -11, -12, -22, -23, 1, -47, -78, -98, -125, -154, -188, -226, -218, -216, --206, -195, -165, -158, -113, -91, -68, -43, -75, -74, -43, -16, 27, -46, -9, 41, 31, 23, 13, 10, 4, -6, -37, -69, -6, --49, -69, -110, -113, -126, -138, -151, -160, -176, -164, -159, -156, -153, -152, -151, -137, -122, -103, -91, -133, 84, 83, 76, 83, 86, -106, 71, 73, 82, 85, 86, 88, 87, 85, 75, 73, 74, 87, 89, 91, 92, 86, 82, 77, 76, 70, 55, 55, 55, 51, -68, 74, 68, 79, 82, 76, 84, 98, 93, 124, 122, 147, 75, 56, 73, 90, 108, 103, 109, 96, 68, 73, 78, 105, 117, -139, 141, 115, 102, 83, 80, 61, 21, 13, 13, 12, 65, 80, 62, 82, 80, 71, 88, 123, 95, 129, 119, 195, 59, 44, -86, 103, 117, 119, 114, 99, 44, 69, 81, 120, 148, 174, 198, 140, 119, 83, 83, 37, -38, -42, -35, -35, 44, 77, 44, -90, 107, 92, 137, 138, 131, 209, 262, 334, 85, -20, 78, 97, 145, 207, 108, 52, 42, 110, 117, 157, 223, 279, 309, 205, -149, 87, 70, 3, -131, -166, -138, -107, 49, 77, 34, 80, 53, 32, 97, 197, 69, -55, -190, -280, 27, 221, 295, 235, 76, --50, 31, 73, 104, 184, 168, 153, 117, 115, 115, 44, 60, 91, 66, 76, 76, 312, 268, -119, 36, 56, 47, 87, 262, 606, -359, -252, 0, 207, 176, 92, 21, -59, -81, 18, 88, 111, 49, 36, 77, 68, 126, 161, 162, 163, 107, 145, 131, 21, 27, -35, 60, 172, 162, -45, 75, 57, -74, -117, -215, -317, -299, -102, -59, -51, -66, -24, -125, -176, 36, -35, -46, 7, 40, 62, -35, 61, 121, 76, 44, 56, 67, 183, 195, 76, 123, 80, -18, 1, 42, 82, 191, 260, 260, 120, 30, -66, -79, 13, -126, --47, -68, -121, -129, -66, 101, 29, 68, 71, 27, 31, 84, 97, 134, 144, 162, 154, 87, 139, 152, 123, 148, 126, -1, 50, -16, -110, -155, -176, -212, -30, 49, -4, 62, -192, -366, -480, -442, -363, -364, -314, -202, -202, -170, -116, -32, 31, 87, 63, 67, -102, 87, 95, 63, 130, 133, 76, 3, -25, -23, -21, -17, -42, 58, -9, -229, -298, -327, -333, -223, -482, -375, -219, -118, -30, -109, 135, 97, 64, 56, 57, 131, 136, 123, 96, 80, 89, 13, -11, 11, 77, 90, 75, 4, -36, -87, -95, -116, -134, -179, --95, 112, 34, -69, -217, -398, -85, 32, 127, 156, 250, 235, 220, 230, 244, 236, 259, 198, 183, 135, 105, 56, 24, -2, -32, --44, -93, -149, -195, -222, -245, -279, -260, -253, -232, -280, -351, -433, -407, -360, -316, -178, -62, -28, 21, -10, 17, 19, 30, 48, -26, 16, 13, -5, -12, -20, -28, -47, -68, -86, -84, -147, -171, -186, -207, -232, -258, -289, -281, -279, -275, -265, -240, -228, -173, --139, -114, -88, -121, -113, -101, -83, -63, -93, -73, -47, -54, -57, -65, -64, -67, -70, -95, -117, -86, -118, -134, -163, -165, -178, --188, -198, -206, -219, -211, -207, -203, -199, -197, -198, -185, -171, -151, -138, -184, 78, 79, 70, 74, 75, 88, 64, 66, 70, 79, -81, 79, 83, 81, 68, 66, 67, 82, 79, 79, 78, 77, 74, 70, 71, 67, 59, 57, 57, 57, 63, 66, 65, 72, 74, -68, 79, 92, 83, 109, 102, 111, 64, 51, 56, 84, 103, 93, 111, 97, 61, 64, 69, 102, 102, 120, 112, 96, 87, 74, -79, 69, 41, 36, 35, 42, 64, 69, 63, 68, 68, 58, 83, 125, 81, 105, 91, 137, 49, 42, 59, 99, 119, 103, 127, -112, 35, 59, 67, 122, 123, 143, 150, 110, 100, 70, 82, 54, 5, 4, 8, 22, 43, 61, 53, 75, 88, 66, 129, 125, -108, 176, 210, 241, 64, -12, 42, 92, 148, 178, 128, 70, 13, 89, 97, 158, 190, 238, 240, 158, 117, 61, 74, 43, -56, --71, -50, 4, 74, 61, 44, 46, 29, 1, 92, 235, 95, -33, -167, -246, -3, 160, 252, 274, 126, -39, 18, 61, 132, 180, -154, 134, 82, 65, 46, 36, 78, 115, 98, 97, 88, 304, 252, -91, -49, -17, 101, 119, 240, 501, 346, -250, -279, 265, 320, -28, 74, 5, -89, 10, 87, 144, 63, 37, 79, 91, 150, 147, 144, 140, 74, 158, 140, 21, 33, 67, 119, 155, 122, -87, -111, 30, -339, -206, -198, -273, -230, -90, -69, -61, -50, 58, -35, -128, 52, -1, -29, 20, 35, 55, 51, 42, 90, 38, 17, -31, 33, 155, 165, 63, 98, 51, -19, 33, 96, 79, 190, 252, 236, 108, 5, -8, -68, 8, -99, 5, 30, -64, -67, -43, -67, 22, 55, 63, 25, 33, 76, 92, 135, 125, 131, 137, 75, 114, 133, 126, 107, 85, 29, 47, -24, -185, -161, -154, -151, -28, 99, 69, 50, -75, -137, -320, -395, -410, -320, -248, -185, -162, -140, -116, -62, 3, 97, 64, 69, 87, 100, 102, 31, 109, -130, 98, 67, 38, 22, 23, -1, -51, -2, -36, -164, -229, -247, -225, -119, -473, -471, -402, -277, -144, 2, 20, -59, -66, -50, --13, 92, 125, 110, 71, 53, 53, 23, 23, 39, 112, 119, 70, 45, -1, -30, -69, -91, -70, -163, -133, 8, 57, 5, -167, --348, -166, -116, -31, -3, 70, 69, 75, 102, 145, 160, 208, 141, 129, 90, 72, 38, 17, -2, -19, -44, -72, -92, -107, -131, --155, -186, -175, -173, -159, -175, -197, -239, -267, -276, -273, -208, -84, -53, -14, -29, -4, 3, 16, 29, 12, -2, -4, -17, -21, --26, -48, -71, -98, -122, -147, -175, -193, -215, -236, -260, -280, -306, -290, -283, -281, -274, -263, -252, -204, -166, -138, -111, -144, -134, --129, -117, -105, -117, -105, -88, -95, -96, -104, -102, -106, -107, -127, -138, -133, -150, -160, -166, -175, -185, -194, -203, -211, -223, -218, --216, -211, -208, -205, -207, -195, -184, -170, -158, -205, 70, 72, 60, 66, 67, 75, 58, 63, 64, 75, 79, 75, 83, 81, 65, -63, 61, 79, 73, 70, 63, 65, 64, 63, 65, 64, 60, 58, 58, 61, 57, 58, 61, 63, 63, 57, 70, 75, 63, 92, -79, 83, 56, 48, 44, 75, 93, 86, 112, 98, 56, 58, 62, 97, 88, 101, 80, 72, 70, 68, 76, 73, 56, 53, 53, -70, 65, 60, 61, 54, 51, 40, 69, 115, 65, 79, 61, 87, 38, 39, 44, 91, 113, 94, 138, 126, 34, 54, 58, 121, -100, 109, 94, 73, 75, 65, 81, 71, 45, 44, 43, 75, 43, 47, 61, 57, 58, 34, 109, 84, 68, 124, 148, 161, 45, --4, 13, 79, 136, 145, 148, 91, -10, 68, 83, 163, 155, 181, 147, 92, 77, 59, 84, 77, 14, 14, 31, 111, 96, 52, -55, 13, -6, -37, 64, 261, 101, -53, -188, -235, -32, 108, 194, 292, 175, -14, 7, 51, 162, 166, 135, 120, 53, 28, 10, -43, 90, 122, 102, 101, 109, 238, 153, -125, -120, -62, 136, 135, 209, 384, 321, -245, -451, 309, 425, 1, 108, 43, -77, 11, -85, 167, 80, 46, 80, 115, 175, 123, 120, 113, 62, 156, 142, 55, 80, 107, 145, 130, 85, -95, 159, 41, -429, -232, -165, --207, -182, -50, -102, -98, -74, 71, 52, -27, 70, 31, -8, 32, 31, 55, 59, 24, 50, -6, -16, 4, -2, 92, 108, 49, -40, -3, -8, 56, 121, 70, 179, 215, 196, 80, 2, 92, -4, 24, 10, 62, 86, -19, -16, -27, 7, 3, 30, 51, 20, -30, 60, 84, 122, 83, 84, 95, 55, 84, 99, 97, 77, 64, 47, 44, -46, -235, -157, -139, -93, 28, 102, 144, 38, -46, --91, -235, -351, -432, -303, -220, -167, -118, -99, -94, -75, -15, 93, 58, 60, 50, 98, 98, 29, 77, 109, 142, 119, 80, 26, -29, -16, -96, -78, -73, -81, -143, -164, -118, -58, -390, -442, -434, -323, -172, -82, -76, -149, -147, -118, -59, 30, 73, 85, 46, -35, 32, 48, 60, 58, 109, 108, 72, 51, 14, -10, -51, -59, -27, -85, -136, -179, -69, -61, -174, -294, -221, -220, -147, -128, --75, -63, -38, -4, 54, 83, 141, 92, 87, 68, 46, 19, -7, -26, -43, -65, -47, -29, -7, -29, -55, -84, -85, -94, -99, --88, -63, -55, -116, -175, -210, -212, -99, -73, -37, -39, -14, -5, 7, 24, 6, -7, -10, -15, -16, -17, -43, -60, -78, -95, --132, -124, -141, -168, -187, -210, -224, -242, -233, -231, -236, -240, -254, -256, -224, -184, -155, -127, -138, -128, -135, -130, -129, -118, -117, --108, -114, -115, -122, -122, -128, -130, -132, -127, -154, -150, -149, -135, -149, -154, -161, -166, -172, -181, -181, -183, -181, -181, -179, -186, --172, -166, -157, -148, -181, 60, 61, 50, 56, 57, 62, 52, 56, 56, 67, 71, 68, 78, 76, 59, 57, 53, 72, 62, 58, -50, 53, 53, 56, 58, 58, 56, 53, 52, 59, 51, 50, 55, 52, 50, 44, 58, 56, 40, 62, 56, 63, 50, 46, 38, -66, 82, 77, 108, 96, 54, 52, 54, 86, 73, 77, 54, 51, 54, 62, 67, 67, 59, 53, 55, 80, 60, 51, 57, 37, -31, 20, 52, 92, 48, 54, 39, 56, 35, 42, 40, 82, 106, 90, 144, 136, 42, 53, 51, 109, 79, 76, 51, 43, 53, -65, 78, 78, 64, 55, 50, 99, 44, 41, 65, 35, 25, -2, 75, 40, 20, 54, 86, 110, 40, 13, 2, 67, 118, 113, -163, 110, -14, 53, 79, 170, 123, 118, 64, 34, 39, 60, 81, 79, 41, 39, 64, 170, 103, 51, 60, -24, -53, -80, 25, -259, 137, -35, -182, -250, -50, 76, 130, 290, 214, 26, 2, 45, 182, 144, 109, 103, 36, 9, 9, 65, 98, 125, 109, 126, -175, 168, 41, -165, -154, -69, 156, 171, 210, 284, 260, -211, -545, 284, 451, -12, 133, 71, -36, 16, 77, 175, 104, 68, 82, -135, 183, 92, 96, 97, 68, 140, 139, 109, 108, 121, 138, 116, 80, -66, 193, 85, -318, -196, -144, -137, -113, 29, -138, -141, --114, 36, 91, 44, 58, 54, 21, 42, 33, 56, 65, 10, 7, -48, -41, -19, -28, 35, 58, 55, -3, -42, -44, 66, 146, -70, 198, 190, 126, 60, 27, 171, 84, 59, 114, 118, 108, 5, 11, -18, -40, -12, 11, 38, 22, 30, 46, 75, 100, 45, -45, 51, 45, 72, 85, 97, 62, 36, 39, 20, -70, -236, -130, -105, -60, 13, 90, 174, 55, -53, -130, -208, -317, -443, -324, --234, -158, -89, -62, -61, -70, -23, 70, 48, 47, 12, 73, 81, 39, 35, 60, 132, 102, 73, 15, -14, -45, -85, -120, -104, --21, -79, -100, -72, -32, -288, -347, -368, -282, -137, -120, -134, -191, -188, -159, -95, -42, 5, 61, 29, 32, 29, 71, 81, 72, -88, 90, 106, 57, 33, -10, -38, -51, -51, -54, -131, -266, -228, -194, -187, -245, -273, -308, -246, -232, -193, -160, -114, -69, -12, -23, 79, 57, 64, 68, 35, 11, -19, -30, -43, -39, 12, 44, 88, 58, 32, 4, -8, -23, -41, -26, 7, 37, -31, -114, --181, -230, -108, -92, -59, -51, -28, -21, -12, 7, -4, -8, -8, -2, 5, 13, -15, -27, -37, -50, -85, -74, -88, -108, -119, --133, -139, -146, -148, -155, -166, -181, -206, -221, -207, -176, -153, -128, -103, -97, -111, -114, -124, -91, -101, -104, -104, -103, -107, -108, --113, -114, -98, -81, -135, -114, -106, -86, -95, -96, -100, -100, -101, -104, -109, -113, -116, -118, -119, -127, -116, -115, -111, -108, -108, -49, 49, 44, 46, 47, 52, 45, 50, 50, 58, 62, 61, 71, 70, 54, 49, 42, 60, 50, 47, 40, 43, 44, 48, 48, -47, 45, 41, 41, 54, 42, 41, 45, 39, 37, 30, 44, 41, 31, 39, 41, 50, 47, 45, 35, 58, 70, 69, 100, 92, -53, 47, 45, 66, 56, 56, 38, 38, 42, 53, 53, 48, 39, 30, 38, 79, 51, 43, 47, 20, 11, 3, 35, 71, 47, -42, 33, 41, 40, 51, 42, 78, 101, 90, 148, 140, 55, 54, 42, 81, 59, 52, 30, 30, 41, 62, 64, 61, 44, 27, -25, 107, 39, 33, 55, 8, -4, -35, 42, 26, 9, 11, 49, 80, 42, 30, 7, 64, 101, 91, 173, 127, 1, 48, 75, -156, 91, 65, 15, 6, 21, 54, 61, 38, 2, -10, 39, 189, 94, 48, 52, -59, -95, -113, 1, 197, 170, 31, -113, -232, --39, 66, 80, 273, 245, 75, 9, 45, 187, 118, 83, 83, 34, 21, 37, 90, 107, 130, 126, 161, 251, 91, -59, -175, -156, --53, 138, 208, 224, 204, 166, -115, -549, 155, 356, -17, 130, 95, 25, 20, 54, 172, 126, 92, 81, 145, 174, 67, 71, 77, -67, 105, 117, 139, 132, 138, 136, 97, 67, -16, 206, 117, -200, -149, -127, -102, -15, 101, -127, -130, -100, 26, 119, 83, 27, -61, 43, 47, 36, 56, 75, 5, -29, -64, -52, -36, -46, -7, 28, 91, -34, -73, -37, 60, 136, 91, 185, 141, 32, 24, -41, 188, 151, 98, 156, 135, 93, -10, 7, -19, -54, -8, 10, 29, 31, 37, 37, 58, 72, 25, 17, 25, 50, 76, 80, -98, 27, -2, 24, -16, -78, -169, -80, -51, -14, 36, 80, 131, 87, -95, -151, -213, -300, -424, -351, -263, -164, -82, -41, -34, --53, -24, 32, 32, 38, 1, 37, 45, 36, -2, 14, 84, 79, 60, -3, -33, -60, -71, -158, -152, -22, -43, -46, -33, -53, --211, -250, -270, -209, -91, -130, -167, -210, -205, -181, -131, -108, -56, 32, 20, 36, 32, 75, 83, 78, 61, 67, 115, 60, 36, --15, -30, -56, -86, -92, -149, -237, -304, -294, -219, -216, -296, -345, -305, -291, -265, -215, -150, -93, -47, -19, 29, 27, 51, 66, -34, 13, -12, -3, 0, 29, 73, 96, 136, 106, 83, 57, 36, 16, -14, -4, 9, 31, -32, -110, -188, -250, -112, -110, -84, --66, -48, -39, -33, -16, -18, -15, -7, 5, 18, 36, 11, -2, -11, -25, -58, -54, -59, -66, -69, -70, -67, -62, -71, -82, --93, -110, -133, -150, -153, -140, -130, -118, -61, -61, -70, -76, -88, -53, -63, -70, -65, -59, -58, -56, -58, -55, -42, -28, -78, --59, -51, -35, -39, -37, -37, -35, -34, -32, -39, -43, -47, -51, -53, -59, -55, -57, -59, -61, -31, 37, 36, 39, 40, 41, -44, 38, 44, 44, 51, 55, 54, 64, 63, 50, 42, 32, 47, 39, 38, 31, 34, 34, 38, 34, 31, 25, 23, 25, 44, -32, 31, 35, 27, 24, 18, 30, 27, 32, 29, 34, 42, 48, 45, 33, 51, 62, 64, 92, 86, 54, 42, 33, 41, 40, -42, 29, 33, 36, 43, 33, 18, 3, -6, 10, 68, 40, 35, 36, 4, -7, -11, 18, 55, 64, 46, 38, 35, 47, 61, -47, 79, 100, 95, 150, 142, 71, 54, 31, 43, 42, 41, 24, 29, 38, 54, 39, 23, -11, -27, -16, 95, 31, 30, 46, --11, -28, -47, 14, 22, 26, -2, 34, 64, 57, 50, 19, 68, 93, 87, 182, 145, 30, 51, 65, 113, 59, 35, 0, 9, -26, 50, 24, -33, -83, -94, -17, 173, 75, 49, 44, -85, -130, -119, -16, 123, 187, 109, -17, -192, -36, 56, 62, 241, 256, -130, 25, 44, 174, 92, 63, 73, 54, 57, 71, 106, 113, 133, 139, 180, 286, 18, -139, -178, -127, -14, 97, 247, 248, 131, -78, -24, -483, -54, 160, 43, 110, 97, 83, 31, 38, 162, 148, 118, 78, 142, 151, 54, 48, 50, 62, 73, 100, 167, 165, -156, 142, 69, 45, 37, 191, 115, -132, -94, -91, -91, 71, 156, -50, -54, -32, 46, 138, 107, 6, 56, 53, 48, 39, 56, -86, 7, -47, -52, -48, -47, -49, -35, 4, 95, -47, -66, 0, 63, 112, 117, 105, 34, -53, -39, 26, 173, 186, 112, 141, -101, 46, -45, -20, -35, -56, 11, 24, 24, 47, 51, 34, 37, 40, 17, -5, 11, 56, 79, 77, 86, 13, -19, -17, -48, --75, -79, -32, 7, 75, 101, 103, 104, 109, -118, -132, -218, -287, -354, -343, -272, -173, -92, -39, -23, -34, -25, -11, 14, 28, -4, 13, 16, 32, -9, -2, 39, 56, 49, 3, -22, -66, -71, -172, -181, -71, -36, -3, 17, -68, -173, -187, -192, -154, -81, --151, -200, -221, -209, -189, -156, -154, -104, -9, 15, 41, 38, 66, 70, 70, 36, 38, 72, 58, 31, -17, -33, -55, -76, -110, --150, -188, -261, -282, -249, -204, -272, -309, -294, -277, -260, -208, -143, -87, -61, -53, -20, -11, 31, 49, 29, 17, 9, 27, 44, -72, 90, 101, 120, 105, 96, 90, 60, 25, -19, -27, -37, -41, -92, -147, -210, -247, -123, -133, -108, -90, -73, -62, -58, -44, --42, -33, -20, -9, 3, 25, 11, 6, -2, -11, -37, -23, -20, -21, -19, -13, -6, 4, -12, -22, -33, -47, -66, -82, -97, --104, -108, -115, -40, -48, -41, -43, -46, -32, -31, -30, -22, -14, -11, -5, -4, 1, -2, 3, -21, -11, -7, 3, 1, 5, -6, 8, 9, 12, 5, 0, -5, -11, -15, -20, -22, -26, -31, -36, 8, 24, 24, 34, 33, 33, 34, 30, 35, 34, 41, -44, 44, 54, 53, 43, 31, 19, 30, 26, 27, 22, 25, 25, 26, 19, 13, 3, 3, 8, 30, 19, 18, 23, 13, 10, -5, 16, 17, 34, 23, 29, 34, 48, 44, 27, 44, 54, 58, 82, 77, 54, 32, 18, 15, 23, 30, 22, 31, 31, 30, -7, -15, -34, -38, -16, 48, 24, 22, 21, -11, -23, -24, 2, 44, 86, 60, 49, 35, 55, 70, 46, 80, 98, 98, 148, -140, 83, 48, 15, 5, 27, 34, 24, 38, 40, 44, 5, -27, -74, -81, -57, 66, 12, 14, 31, -31, -49, -57, -6, 23, -56, -1, 33, 60, 87, 77, 30, 77, 94, 98, 194, 165, 64, 56, 47, 54, 32, 23, 4, 31, 39, 41, -29, -115, -169, --165, -62, 136, 47, 33, 24, -107, -153, -119, -30, 79, 220, 196, 77, -146, -57, 30, 62, 199, 248, 184, 46, 40, 152, 70, -56, 81, 85, 95, 96, 106, 110, 134, 147, 183, 268, -55, -213, -213, -110, 12, 38, 252, 252, 66, 20, 26, -404, -285, -67, -151, 100, 86, 122, 48, 39, 148, 170, 142, 71, 122, 116, 47, 29, 27, 57, 49, 86, 176, 177, 154, 116, 44, 41, 94, -141, 75, -90, -42, -38, -80, 120, 225, 73, 66, 66, 77, 136, 106, -7, 51, 60, 45, 42, 56, 92, 14, -47, -26, -35, --47, -39, -51, -19, 70, -24, -24, 8, 60, 70, 110, -10, -88, -94, -94, 12, 161, 213, 87, 86, 35, -14, -73, -41, -48, --57, 27, 43, 28, 66, 62, 27, 14, 12, 15, -14, 3, 61, 89, 90, 89, 20, -15, -46, -68, -67, 17, 4, 64, 194, -171, 140, 104, 102, -99, -105, -206, -258, -261, -301, -251, -171, -103, -47, -29, -28, -28, -47, 1, 18, 3, 1, 5, 29, -10, --13, 4, 25, 32, 14, -19, -59, -66, -157, -184, -144, -60, 7, 43, -49, -145, -148, -147, -139, -123, -194, -235, -234, -212, -188, --163, -172, -133, -51, 6, 41, 42, 57, 59, 55, 21, 14, 20, 49, 33, -4, -35, -56, -71, -82, -101, -147, -174, -210, -237, --181, -221, -238, -234, -213, -197, -159, -112, -71, -71, -90, -79, -60, -4, 16, 19, 22, 41, 48, 59, 68, 67, 70, 68, 74, -84, 106, 61, 15, -40, -68, -96, -117, -148, -175, -211, -218, -144, -165, -140, -130, -113, -101, -97, -82, -78, -62, -47, -38, -29, --9, -5, 3, 5, 9, 2, 34, 38, 38, 41, 47, 49, 57, 35, 25, 14, 1, -15, -31, -57, -80, -99, -122, -47, -61, --44, -40, -31, -39, -29, -18, -9, -2, 2, 9, 12, 15, 5, 5, 5, 9, 11, 20, 17, 20, 22, 23, 23, 26, 19, -13, 5, -2, -9, -14, -19, -26, -33, -40, 3, 11, 13, 29, 26, 25, 25, 21, 26, 24, 32, 35, 35, 43, 42, 36, -19, 7, 14, 14, 15, 12, 16, 15, 14, 3, -5, -17, -13, -8, 14, 5, 6, 12, 0, -4, -6, 4, 8, 37, 22, -26, 26, 47, 42, 18, 37, 47, 51, 70, 66, 50, 21, 3, -8, 6, 19, 15, 28, 26, 15, -18, -45, -64, -60, -34, -23, 6, 5, 8, -27, -37, -32, -11, 34, 109, 75, 61, 35, 63, 75, 37, 81, 96, 98, 139, 131, 86, 37, -2, -25, -9, 25, 25, 47, 42, 28, -31, -76, -125, -116, -83, 28, -10, -5, 23, -53, -69, -63, -23, 24, 98, 23, 42, 58, 116, -101, 34, 85, 99, 111, 206, 183, 92, 56, 24, -3, 4, 17, 14, 54, 51, 21, -85, -183, -227, -199, -85, 82, 14, 6, -14, -126, -165, -108, -42, 56, 246, 278, 163, -82, -80, -6, 63, 154, 228, 240, 65, 32, 128, 51, 55, 95, 110, 120, 103, -95, 101, 127, 146, 163, 189, -119, -264, -262, -104, 24, -21, 223, 219, -2, -14, 29, -329, -481, -265, 252, 115, 81, 131, 60, -45, 130, 181, 156, 62, 93, 76, 41, 19, 18, 52, 26, 65, 162, 174, 139, 74, 25, 42, 138, 66, -9, -118, -5, 24, --48, 130, 288, 221, 202, 172, 115, 133, 102, -7, 54, 70, 39, 44, 55, 91, 22, -38, -3, -20, -35, -27, -53, -28, 42, --11, 7, 34, 57, 34, 97, -95, -161, -97, -91, 30, 157, 233, 43, 0, -38, -61, -82, -38, -44, -49, 32, 56, 36, 78, -64, 12, -3, -6, 15, -13, 5, 66, 92, 97, 89, 35, 3, -48, -90, -64, 96, 22, 103, 284, 229, 179, 101, 86, -64, --85, -167, -207, -189, -237, -202, -149, -103, -58, -48, -38, -38, -69, -4, 11, 0, -1, 3, 21, -7, -17, -16, 1, 11, 18, --7, -29, -46, -125, -170, -205, -91, -8, 33, -22, -115, -113, -116, -137, -179, -230, -258, -254, -220, -188, -163, -170, -142, -84, -13, -29, 49, 48, 46, 41, 13, 3, -8, 27, 33, 20, -22, -48, -71, -55, -53, -95, -105, -138, -162, -138, -167, -174, -174, -151, --134, -115, -94, -71, -92, -127, -137, -112, -53, -35, -1, 22, 68, 59, 56, 53, 43, 38, 25, 43, 60, 90, 38, -7, -57, --91, -126, -152, -164, -170, -182, -176, -152, -180, -169, -161, -151, -141, -137, -123, -114, -92, -74, -66, -58, -41, -23, -8, 6, 22, -41, 67, 67, 68, 69, 71, 67, 70, 49, 39, 28, 17, 6, -8, -38, -68, -96, -125, -59, -73, -60, -56, -45, -55, -46, --32, -25, -19, -14, -8, -4, -1, -9, -9, 5, 6, 8, 14, 11, 12, 13, 13, 13, 15, 9, 3, -4, -11, -18, -22, --30, -36, -43, -51, -15, -1, 2, 21, 18, 17, 14, 11, 17, 11, 22, 25, 24, 30, 29, 26, 7, -4, 0, 2, 4, -3, 8, 6, 2, -11, -19, -30, -23, -18, -1, -7, -5, 3, -12, -16, -15, -8, -3, 35, 23, 20, 14, 41, 37, 7, -31, 40, 43, 56, 52, 44, 8, -12, -23, -10, 7, 8, 24, 19, -1, -38, -64, -79, -64, -39, 3, -8, -9, 1, -40, --50, -39, -23, 20, 118, 83, 62, 27, 64, 75, 24, 80, 93, 92, 123, 114, 81, 22, -19, -42, -10, 12, 23, 51, 41, -8, -60, -107, -148, -121, -86, -5, -24, -20, 20, -70, -85, -64, -37, 11, 117, 48, 45, 44, 133, 119, 37, 92, 103, 118, -212, 192, 109, 49, -3, -45, -26, 5, 19, 70, 57, -7, -125, -215, -240, -184, -76, 40, -8, -15, 17, -136, -170, -98, -51, -47, 247, 330, 231, -25, -104, -53, 54, 106, 198, 289, 78, 18, 103, 37, 55, 101, 121, 128, 97, 88, 94, 107, 135, 127, -85, -158, -279, -292, -92, 27, -73, 178, 165, -84, -40, -24, -267, -583, -383, 300, 140, 88, 112, 65, 51, 106, 179, 161, 57, -68, 45, 39, 19, 18, 42, 7, 46, 134, 154, 116, 55, 12, 45, 171, -14, -100, -144, 25, 76, 7, 98, 315, 342, 318, -259, 145, 126, 107, 18, 68, 77, 35, 43, 51, 84, 31, -24, 11, -9, -23, -27, -49, -32, -4, 7, 51, 82, 57, 5, -67, -144, -187, -99, -24, 94, 166, 242, -6, -83, -110, -93, -63, -19, -30, -29, 29, 54, 42, 76, 56, -4, -13, -17, 3, --9, 10, 57, 69, 80, 77, 54, 25, -44, -85, -36, 140, 66, 147, 307, 267, 207, 99, 67, -35, -54, -119, -152, -152, -170, --140, -112, -89, -62, -67, -59, -54, -77, -11, 3, 5, 2, 4, 16, 11, 0, -13, 0, 7, 25, 17, -1, -31, -83, -132, --213, -102, -25, 5, -16, -79, -86, -88, -125, -217, -249, -272, -268, -227, -190, -165, -160, -140, -108, -39, 7, 54, 39, 34, 29, -10, -3, -22, 3, 21, 39, 1, -26, -52, -46, -32, -30, -47, -71, -68, -82, -114, -117, -125, -105, -90, -92, -97, -96, -122, --157, -177, -155, -108, -97, -34, 8, 74, 60, 53, 49, 34, 25, 10, 21, 28, 43, 5, -23, -51, -87, -127, -160, -156, -145, --139, -129, -134, -159, -174, -162, -164, -158, -154, -147, -131, -109, -91, -83, -73, -62, -40, -29, -10, 7, 41, 44, 40, 42, 40, -38, 34, 33, 20, 13, 6, 1, 0, -7, -31, -60, -86, -111, -63, -71, -66, -65, -61, -62, -58, -52, -45, -41, -36, -29, --25, -21, -24, -25, -7, -7, -5, -6, -6, -7, -8, -9, -9, -9, -13, -16, -20, -25, -30, -30, -39, -44, -49, -55, -30, --11, -7, 12, 8, 6, 0, 1, 6, -1, 12, 14, 12, 17, 15, 14, -6, -14, -12, -10, -7, -6, 0, -3, -10, -22, --29, -37, -28, -23, -12, -16, -14, -5, -22, -25, -22, -17, -14, 25, 18, 10, -5, 32, 32, -4, 24, 32, 34, 41, 36, -37, -6, -26, -33, -24, -6, 0, 16, 8, -20, -52, -72, -81, -56, -33, -9, -17, -19, -6, -49, -58, -43, -33, 4, 104, -76, 53, 9, 57, 69, 10, 77, 90, 82, 100, 90, 73, 4, -36, -50, -27, -2, 17, 47, 32, -18, -79, -120, -148, -104, --71, -22, -31, -31, 13, -84, -97, -61, -49, -7, 101, 48, 32, 16, 141, 133, 37, 97, 105, 117, 206, 189, 115, 34, -30, --69, -51, -12, 17, 70, 47, -45, -151, -218, -221, -135, -38, 24, -17, -28, 17, -139, -165, -84, -58, 41, 240, 353, 273, 16, --136, -110, 31, 61, 162, 314, 83, 4, 75, 26, 53, 91, 115, 121, 92, 84, 85, 82, 118, 89, -7, -182, -273, -285, -76, -21, -112, 115, 91, -161, -69, -111, -250, -601, -424, 276, 165, 108, 89, 62, 56, 81, 169, 162, 61, 52, 27, 44, 32, 26, -27, -7, 24, 87, 125, 97, 40, 6, 47, 187, -70, -148, -127, 45, 105, 69, 44, 324, 410, 394, 312, 147, 101, 105, 64, -85, 80, 34, 37, 41, 72, 39, -6, 14, -5, -25, -39, -44, -31, -28, 48, 102, 115, 71, -2, 5, -164, -186, -137, 74, -186, 155, 240, -62, -136, -172, -118, -37, -7, -23, -10, 16, 39, 38, 58, 36, -14, -20, -29, -18, -7, 12, 39, 39, 58, -67, 72, 43, -31, -45, 14, 146, 132, 196, 259, 255, 193, 92, 29, -15, 8, -63, -94, -105, -106, -80, -69, -66, -54, -74, --76, -71, -71, -27, -8, 17, 3, 4, 15, 31, 27, 7, 10, 13, 29, 26, 6, -37, -49, -77, -155, -83, -38, -9, -28, --50, -72, -84, -128, -238, -266, -279, -266, -226, -190, -165, -148, -132, -119, -64, -18, 43, 34, 33, 26, 16, 1, -21, -9, 8, -49, 24, 2, -20, -36, -26, 9, -8, -22, -11, -35, -69, -67, -81, -70, -58, -79, -106, -129, -150, -175, -196, -180, -152, -147, --70, -15, 58, 45, 43, 44, 27, 18, 6, 4, -2, -4, -23, -33, -41, -71, -106, -137, -126, -108, -97, -86, -102, -115, -145, --134, -146, -144, -138, -140, -120, -107, -93, -85, -77, -72, -56, -53, -40, -27, 4, -4, -7, -5, -7, -7, -8, -9, -14, -19, --23, -24, -21, -26, -38, -57, -74, -89, -64, -66, -66, -65, -64, -63, -62, -61, -58, -54, -50, -46, -42, -37, -41, -44, -22, --26, -26, -32, -29, -31, -31, -32, -32, -32, -35, -37, -40, -43, -46, -46, -52, -54, -56, -59, -51, -18, -15, 2, 0, -1, --11, -6, -2, -11, 4, 6, 3, 5, 3, 6, -14, -22, -19, -17, -15, -12, -8, -11, -20, -29, -34, -39, -28, -24, -19, --21, -20, -11, -28, -31, -26, -24, -22, 13, 10, -1, -23, 22, 25, -11, 19, 26, 28, 25, 21, 31, -16, -35, -40, -33, --16, -7, 5, -5, -35, -61, -73, -74, -40, -20, -14, -22, -27, -12, -53, -61, -45, -39, -13, 82, 64, 43, -13, 47, 60, --2, 74, 86, 73, 74, 63, 68, -12, -47, -53, -38, -13, 11, 33, 14, -41, -92, -120, -133, -74, -45, -25, -32, -38, 8, --86, -99, -57, -59, -28, 77, 38, 11, -23, 134, 141, 37, 104, 110, 114, 187, 172, 116, 14, -50, -77, -64, -27, 13, 54, -22, -77, -165, -204, -186, -71, 14, 24, -19, -39, 9, -130, -148, -72, -66, 28, 217, 359, 302, 54, -159, -164, -4, 25, 127, -308, 82, -4, 48, 20, 51, 69, 95, 106, 90, 75, 71, 59, 96, 52, -74, -190, -255, -254, -52, 26, -112, 63, 20, -211, --99, -184, -269, -572, -424, 184, 179, 140, 85, 56, 54, 60, 152, 156, 71, 43, 18, 49, 47, 35, 11, -13, 9, 43, 99, -79, 27, -4, 42, 194, -95, -164, -99, 42, 114, 134, 4, 310, 423, 424, 329, 120, 52, 84, 114, 102, 84, 33, 30, 30, -54, 46, 13, 11, -8, -34, -45, -31, -24, -30, 74, 128, 138, 95, 7, -65, -151, -150, -160, 181, 261, 96, 212, -111, -161, --213, -141, -16, -6, -22, 0, -2, 16, 25, 29, 10, -19, -28, -42, -38, -6, 12, 18, 16, 42, 58, 74, 49, 7, 2, -62, 145, 187, 221, 162, 185, 138, 76, -14, 16, 76, 3, -25, -34, -39, -24, -28, -38, -37, -62, -82, -79, -60, -43, -20, -25, 3, 3, 13, 40, 44, 26, 20, 17, 19, 22, 2, -49, -33, -28, -55, -41, -37, -11, -22, -38, -69, -104, -152, -249, --276, -276, -246, -216, -185, -160, -134, -119, -116, -79, -42, 16, 31, 41, 28, 25, 12, -3, -10, 2, 52, 35, 20, 3, -17, --19, 12, 8, 3, -1, -15, -36, -32, -48, -46, -37, -72, -114, -155, -169, -182, -201, -187, -174, -167, -95, -35, 32, 24, 26, -33, 21, 13, 4, -4, -16, -27, -32, -32, -30, -50, -70, -91, -78, -63, -51, -46, -78, -82, -105, -101, -114, -113, -104, -108, --92, -86, -79, -75, -70, -72, -64, -67, -61, -52, -33, -36, -36, -33, -32, -30, -27, -26, -29, -34, -38, -40, -40, -46, -50, --60, -68, -73, -67, -67, -67, -66, -65, -66, -65, -67, -67, -66, -64, -63, -60, -57, -59, -61, -44, -48, -48, -51, -49, -49, --49, -49, -49, -47, -51, -53, -56, -59, -61, -62, -63, -63, -64, -65, -74, -20, -19, -5, -6, -7, -21, -10, -7, -18, -3, -0, -2, -5, -7, 0, -19, -25, -26, -22, -19, -14, -13, -16, -24, -31, -34, -36, -24, -20, -20, -22, -22, -13, -29, -32, --27, -26, -27, 1, 3, -8, -37, 12, 20, -12, 17, 22, 26, 13, 9, 27, -22, -39, -44, -37, -23, -10, -5, -16, -42, --63, -68, -63, -21, -4, -13, -22, -30, -16, -52, -57, -44, -41, -24, 55, 52, 35, -34, 36, 48, -8, 70, 83, 70, 51, -37, 66, -23, -53, -56, -44, -21, 7, 16, -5, -52, -96, -110, -109, -38, -12, -19, -27, -37, 3, -81, -94, -56, -62, -41, -47, 29, -9, -63, 114, 142, 40, 112, 118, 113, 159, 146, 115, -5, -64, -78, -66, -34, 14, 31, -7, -95, -167, -181, -146, --6, 68, 32, -15, -46, -6, -118, -125, -66, -67, 14, 176, 346, 315, 87, -164, -204, -46, -1, 95, 270, 78, -3, 23, 21, -51, 43, 71, 85, 84, 59, 53, 43, 77, 25, -110, -189, -232, -208, -25, 38, -73, 25, -41, -223, -115, -219, -285, -525, -411, -51, 182, 179, 98, 46, 40, 41, 127, 141, 81, 40, 12, 48, 55, 35, 3, -8, 3, 9, 63, 53, 27, -7, 42, 195, --104, -167, -64, 28, 116, 204, -14, 267, 406, 402, 307, 80, -14, 41, 145, 115, 88, 26, 23, 20, 33, 53, 32, 7, -11, --37, -38, -21, -20, -26, 85, 139, 158, 118, 20, -107, -108, -75, -111, 235, 256, 7, 142, -143, -180, -222, -150, -8, -4, -15, -4, -17, -6, 9, -2, -16, -20, -38, -56, -52, -11, 4, -10, -5, 24, 42, 64, 48, 47, 47, 103, 146, 221, 216, 60, -89, 69, 48, -46, 70, 124, 58, 33, 30, 18, 18, 5, -15, -19, -34, -73, -80, -54, -51, -25, 22, 4, 5, 12, 43, -50, 41, 28, 16, 7, 10, -12, -56, -19, 16, 54, 22, -4, 16, 25, -50, -76, -130, -181, -255, -278, -264, -216, -199, -175, --151, -119, -103, -102, -86, -62, -17, 27, 48, 32, 31, 23, 21, -5, 6, 44, 40, 34, 15, 2, -9, 5, 7, 3, -20, --24, -10, -9, -28, -36, -36, -74, -120, -167, -176, -179, -195, -179, -176, -163, -104, -48, 5, 6, 14, 33, 26, 19, 15, 6, --9, -25, -22, -15, -9, -19, -27, -39, -28, -17, -8, -11, -64, -65, -80, -75, -84, -83, -72, -72, -62, -61, -60, -58, -58, --63, -63, -67, -63, -56, -48, -40, -40, -37, -36, -33, -29, -26, -29, -36, -40, -43, -45, -52, -53, -59, -62, -63, -61, -58, --64, -65, -68, -61, -65, -70, -73, -73, -73, -75, -74, -74, -69, -64, -62, -60, -57, -52, -52, -52, -51, -51, -51, -49, -52, --54, -56, -59, -60, -61, -61, -60, -60, -60, -76, -20, -20, -9, -8, -10, -26, -12, -11, -20, -6, -4, -4, -11, -13, -3, --21, -26, -29, -24, -21, -14, -16, -19, -26, -31, -32, -32, -18, -15, -18, -20, -21, -15, -28, -30, -26, -25, -28, -8, -2, --11, -44, 5, 16, -8, 17, 21, 28, 5, 0, 24, -25, -40, -47, -37, -25, -11, -14, -26, -45, -62, -61, -50, -3, 12, --7, -20, -31, -21, -48, -51, -39, -39, -28, 30, 41, 31, -47, 25, 37, -6, 66, 80, 73, 35, 18, 65, -29, -53, -60, --46, -25, 3, -2, -24, -59, -96, -97, -86, -6, 18, -6, -17, -35, -8, -73, -83, -51, -59, -43, 15, 20, -19, -89, 90, -137, 49, 120, 128, 119, 129, 117, 114, -20, -70, -77, -63, -33, 15, 5, -37, -106, -164, -156, -109, 50, 113, 45, -8, -52, --29, -106, -99, -54, -60, 0, 129, 311, 308, 114, -151, -224, -85, -15, 70, 210, 77, 6, -2, 25, 54, 18, 45, 58, 65, -36, 34, 34, 55, 1, -122, -187, -209, -142, 3, 50, -16, -2, -87, -212, -120, -224, -273, -470, -394, -88, 176, 220, 120, 34, -18, 20, 98, 121, 89, 42, 12, 43, 50, 30, 5, -2, -5, -22, 20, 22, 17, -1, 47, 174, -101, -150, -12, 20, 120, -277, -17, 206, 392, 342, 249, 34, -81, -14, 149, 120, 90, 18, 15, 8, 15, 57, 47, 3, -11, -31, -27, -22, -20, -12, -91, 140, 155, 122, 31, -113, -57, 4, -10, 195, 144, -95, 38, -156, -197, -205, -137, -13, 4, 2, 10, -19, -19, -4, -26, --36, -18, -48, -67, -61, -23, -16, -40, -24, 5, 26, 46, 40, 75, 94, 138, 138, 234, 192, -3, 5, 4, 12, -65, 135, -153, 97, 70, 63, 53, 40, 25, 1, -3, -3, -55, -72, -54, -54, -28, 8, 6, 12, 13, 44, 50, 41, 28, 13, -3, --16, -35, -56, 1, 59, 144, 86, 54, 78, 102, -82, -96, -155, -202, -252, -265, -242, -184, -178, -160, -136, -106, -87, -84, -89, --77, -44, 18, 45, 36, 36, 34, 41, 6, 10, 33, 44, 51, 35, 21, 3, 4, -4, -13, -46, -55, 4, 3, -22, -42, --56, -87, -127, -170, -172, -168, -181, -161, -161, -141, -100, -55, -23, -8, 10, 44, 41, 35, 35, 24, 11, -7, 0, 8, 17, -13, 13, 9, 12, 14, 18, 10, -50, -49, -63, -54, -60, -60, -51, -49, -44, -45, -47, -46, -48, -55, -57, -59, -55, -46, --46, -31, -33, -31, -31, -29, -25, -23, -26, -32, -36, -40, -45, -50, -50, -51, -52, -51, -41, -37, -49, -54, -61, -46, -56, --62, -66, -68, -68, -72, -72, -74, -62, -52, -63, -55, -49, -38, -40, -40, -40, -39, -39, -38, -41, -42, -43, -45, -46, -47, --46, -44, -43, -42, -55, -19, -19, -11, -8, -9, -26, -11, -11, -17, -6, -4, -1, -13, -15, -3, -19, -24, -29, -24, -21, --14, -17, -20, -25, -29, -28, -26, -12, -9, -13, -17, -19, -16, -25, -27, -23, -23, -25, -12, -4, -10, -42, 2, 14, 0, -17, 20, 32, 2, -4, 22, -23, -38, -49, -37, -26, -13, -21, -32, -47, -59, -53, -37, 10, 23, 2, -15, -30, -26, -44, --43, -32, -34, -26, 13, 33, 30, -48, 19, 30, 2, 63, 77, 81, 26, 7, 63, -30, -50, -64, -49, -29, -2, -18, -38, --65, -92, -84, -66, 18, 41, 10, -5, -30, -23, -65, -72, -42, -51, -36, -2, 17, -18, -97, 69, 128, 60, 125, 139, 131, -103, 91, 113, -29, -71, -77, -59, -31, 9, -23, -64, -116, -155, -130, -74, 90, 141, 61, 2, -54, -56, -97, -75, -38, -49, --13, 80, 261, 287, 138, -123, -220, -110, -22, 51, 141, 80, 22, -25, 32, 57, -3, 19, 27, 39, 14, 20, 27, 32, -20, --119, -187, -189, -67, 31, 64, 41, -18, -118, -188, -114, -208, -226, -402, -365, -206, 150, 249, 147, 28, -5, -3, 68, 101, 92, -47, 16, 37, 36, 19, 9, -2, -11, -36, -12, -5, 1, 10, 49, 132, -96, -127, 46, 25, 133, 340, -10, 144, 386, 257, -161, -9, -129, -62, 124, 115, 90, 11, 5, -3, 5, 55, 56, 2, -4, -16, -13, -24, -19, 9, 88, 127, 134, 110, 35, --89, -20, 64, 130, 91, -37, -195, -65, -155, -205, -170, -105, -19, 15, 21, 15, -11, -24, -13, -40, -47, -19, -56, -73, -64, --38, -38, -59, -39, -16, 8, 20, 34, 97, 138, 166, 134, 221, 158, -11, -50, -44, -19, -74, 190, 166, 119, 87, 78, 64, -44, 28, 10, 8, 22, -28, -55, -56, -54, -32, -11, 5, 18, 16, 41, 44, 34, 25, 10, -17, -41, -46, -39, 36, 102, -194, 135, 117, 156, 181, -111, -110, -177, -216, -241, -237, -206, -150, -153, -141, -116, -95, -76, -71, -87, -82, -62, 2, 33, 39, -41, 43, 51, 23, 19, 30, 50, 62, 54, 40, 19, 9, -9, -29, -68, -87, 4, 1, -26, -53, -80, -102, -136, -169, -165, --156, -164, -137, -133, -106, -87, -58, -45, -17, 12, 53, 48, 46, 48, 38, 30, 18, 25, 31, 42, 40, 42, 42, 35, 27, -25, 15, -37, -34, -46, -39, -44, -45, -40, -39, -37, -37, -40, -38, -40, -46, -48, -46, -41, -32, -35, -17, -21, -20, -21, --21, -19, -18, -21, -27, -32, -37, -42, -47, -44, -42, -40, -39, -18, -13, -26, -32, -43, -27, -38, -46, -48, -50, -51, -54, --55, -56, -43, -32, -47, -36, -30, -18, -21, -21, -21, -21, -22, -21, -23, -24, -25, -26, -27, -29, -26, -25, -23, -20, -26, --15, -16, -10, -7, -8, -23, -9, -10, -14, -7, -4, 1, -13, -15, -4, -17, -21, -29, -23, -20, -13, -17, -19, -23, -25, --23, -20, -8, -5, -8, -12, -15, -17, -22, -23, -19, -19, -18, -10, -2, -5, -33, 2, 14, 7, 17, 20, 35, 1, -5, -18, -20, -34, -50, -37, -28, -16, -27, -36, -46, -54, -43, -22, 19, 29, 9, -9, -26, -30, -39, -36, -25, -26, -19, 4, -27, 30, -41, 19, 27, 12, 58, 72, 90, 23, 3, 59, -27, -44, -70, -52, -35, -10, -32, -49, -67, -84, -68, -42, 33, -53, 22, 7, -22, -35, -59, -63, -34, -39, -18, -2, 24, -8, -88, 54, 117, 72, 127, 148, 146, 83, 71, 110, -32, -66, --80, -60, -37, -6, -50, -87, -122, -141, -102, -32, 116, 150, 70, 13, -49, -77, -90, -58, -23, -31, -27, 29, 195, 247, 153, --87, -198, -120, -27, 36, 78, 90, 45, -40, 38, 57, -17, -2, 0, 16, 4, 16, 26, 17, -33, -116, -186, -167, 4, 59, -77, 82, -34, -142, -162, -106, -178, -156, -322, -323, -272, 105, 248, 169, 31, -20, -28, 38, 79, 88, 52, 19, 33, 15, 1, -0, -11, -18, -39, -38, -28, -14, 34, 63, 86, -94, -109, 86, 44, 159, 381, 4, 91, 385, 164, 63, -36, -144, -87, 77, -98, 86, 8, -5, -14, 1, 47, 57, 6, 9, 3, 6, -19, -12, 33, 79, 107, 111, 89, 35, -43, 0, 101, 274, -25, --216, -283, -147, -148, -205, -125, -63, -20, 22, 33, 14, -1, -26, -18, -45, -49, -20, -57, -72, -65, -53, -57, -68, -55, -40, --15, -4, 36, 111, 165, 184, 141, 190, 119, 19, -66, -62, -43, -78, 217, 147, 122, 89, 87, 67, 42, 21, 11, 15, 37, -1, -32, -56, -54, -39, -29, 0, 18, 20, 35, 38, 32, 21, 2, -34, -48, -34, -5, 71, 129, 202, 162, 165, 213, 235, --119, -115, -186, -219, -223, -195, -156, -115, -122, -116, -95, -85, -70, -64, -78, -78, -74, -17, 16, 39, 43, 47, 54, 40, 33, -34, 53, 61, 62, 48, 31, 16, -7, -33, -76, -97, -5, -9, -37, -67, -103, -119, -144, -168, -158, -143, -143, -113, -104, -73, --71, -57, -57, -24, 10, 46, 42, 46, 50, 47, 45, 40, 44, 47, 56, 55, 56, 55, 39, 25, 16, 8, -25, -21, -32, --29, -32, -35, -34, -36, -34, -33, -35, -32, -34, -37, -37, -30, -24, -16, -18, 2, -2, -4, -6, -8, -9, -10, -13, -19, --26, -33, -38, -41, -36, -31, -28, -27, -2, 3, -7, -12, -21, -13, -21, -29, -29, -31, -30, -33, -33, -33, -21, -13, -25, --15, -11, -1, -5, -5, -6, -7, -7, -8, -10, -10, -11, -11, -12, -16, -13, -11, -9, -5, -5, -12, -12, -9, -6, -6, --18, -6, -7, -9, -6, -3, 4, -10, -13, -3, -14, -17, -28, -22, -19, -12, -16, -18, -21, -22, -19, -13, -4, -1, -4, --8, -12, -16, -19, -20, -16, -15, -10, -6, 2, 2, -21, 5, 15, 14, 16, 18, 35, 2, -4, 13, -15, -28, -51, -37, --30, -21, -32, -39, -44, -47, -33, -7, 24, 30, 13, -4, -21, -32, -37, -32, -18, -17, -10, 0, 23, 30, -28, 23, 27, -22, 52, 63, 94, 22, 4, 50, -19, -35, -75, -55, -42, -20, -44, -57, -66, -74, -52, -16, 42, 57, 27, 17, -15, -43, --57, -59, -28, -27, 6, 10, 37, 10, -66, 49, 110, 85, 128, 154, 159, 69, 57, 103, -26, -56, -88, -66, -49, -29, -78, --106, -121, -125, -73, 15, 131, 143, 68, 20, -39, -88, -89, -50, -8, -8, -46, -23, 115, 186, 157, -51, -166, -121, -37, 22, -32, 102, 70, -48, 41, 53, -18, -15, -18, 1, 4, 21, 26, 12, -37, -119, -181, -141, 64, 78, 83, 102, -50, -161, -155, --106, -139, -81, -234, -271, -288, 53, 216, 174, 40, -25, -51, 9, 57, 78, 52, 20, 30, -9, -25, -22, -27, -30, -43, -61, --46, -32, 70, 91, 43, -89, -89, 112, 73, 187, 392, 22, 24, 358, 77, -28, -42, -131, -89, 22, 68, 73, 9, -13, -23, -2, 35, 52, 13, 20, 20, 24, -8, 1, 54, 74, 92, 88, 59, 28, 10, 17, 116, 352, -120, -345, -334, -209, -128, -191, --85, -24, -9, 21, 31, 11, 5, -27, -23, -42, -42, -22, -52, -65, -65, -66, -72, -71, -70, -62, -40, -22, 40, 118, 173, -188, 158, 155, 83, 56, -45, -47, -55, -68, 198, 90, 100, 76, 82, 71, 46, 16, 10, 18, 43, 27, -7, -54, -55, -50, --44, -8, 16, 25, 31, 34, 34, 21, -3, -38, -35, -7, 42, 98, 140, 190, 173, 191, 228, 242, -99, -113, -167, -194, -191, --144, -101, -78, -84, -85, -72, -77, -68, -63, -65, -68, -81, -38, -5, 28, 36, 46, 49, 46, 43, 36, 48, 51, 60, 48, -36, 23, 2, -22, -59, -76, -18, -22, -52, -82, -124, -133, -149, -164, -148, -129, -122, -93, -80, -54, -58, -53, -57, -27, 3, -29, 30, 39, 47, 49, 52, 53, 54, 56, 61, 58, 55, 48, 27, 9, -2, -8, -16, -13, -20, -22, -24, -27, -31, -36, --33, -31, -32, -29, -30, -30, -25, -15, -8, 0, 3, 20, 16, 12, 9, 6, 3, 0, -5, -11, -18, -24, -28, -29, -23, --17, -15, -16, 1, 5, 0, -3, -7, -10, -14, -19, -17, -18, -16, -17, -16, -15, -8, -5, -7, -2, 0, 6, 2, 1, -0, -1, -2, -3, -4, -5, -5, -5, -6, -9, -8, -7, -5, -1, -1, -9, -8, -7, -4, -3, -12, -3, -5, -4, -5, --2, 6, -8, -10, -3, -9, -12, -26, -19, -16, -11, -15, -16, -18, -17, -13, -6, -1, 1, -1, -4, -8, -15, -17, -17, --13, -11, 1, 1, 9, 10, -7, 8, 16, 21, 15, 15, 32, 3, -1, 8, -8, -20, -49, -36, -32, -25, -35, -40, -41, --39, -22, 8, 29, 31, 14, 2, -15, -30, -35, -28, -12, -6, 3, 0, 23, 32, -11, 27, 26, 32, 44, 50, 89, 23, -8, 39, -10, -23, -75, -55, -46, -30, -53, -61, -62, -61, -35, 12, 47, 57, 28, 26, -6, -46, -58, -58, -22, -14, 35, -24, 54, 32, -35, 48, 103, 99, 126, 154, 166, 62, 48, 92, -15, -42, -95, -73, -62, -52, -100, -118, -116, -103, -41, 65, -142, 131, 59, 27, -27, -89, -88, -45, 7, 21, -68, -66, 40, 120, 150, -15, -129, -120, -53, 6, 2, 116, 95, -49, 39, -47, -6, -17, -23, -5, 13, 31, 26, 12, -38, -128, -171, -110, 111, 88, 82, 104, -68, -175, -163, -113, -83, -16, -149, -220, --285, 0, 168, 159, 52, -20, -69, -17, 35, 66, 50, 20, 26, -29, -47, -46, -40, -36, -42, -70, -54, -40, 107, 116, 10, --79, -69, 118, 109, 213, 370, 50, -80, 260, 0, -93, -31, -98, -74, -31, 30, 52, 16, -17, -28, 3, 22, 42, 18, 25, -30, 36, 7, 21, 72, 78, 84, 65, 31, 23, 57, 46, 123, 350, -195, -417, -328, -261, -81, -146, -49, 4, 15, 18, 22, -8, 9, -28, -29, -34, -29, -24, -42, -55, -65, -76, -82, -71, -80, -76, -57, -29, 43, 117, 168, 183, 175, 128, 56, 75, --5, -5, -33, -33, 134, 17, 56, 51, 66, 75, 54, 18, 14, 22, 43, 44, 11, -49, -56, -61, -57, -17, 12, 30, 29, -32, 37, 23, 1, -23, -8, 29, 92, 122, 154, 183, 178, 191, 202, 196, -58, -99, -128, -143, -143, -89, -49, -40, -43, -50, --48, -69, -66, -63, -54, -58, -78, -56, -28, 9, 24, 38, 40, 45, 46, 36, 37, 37, 52, 44, 40, 30, 16, 3, -17, --30, -36, -38, -69, -100, -143, -144, -150, -154, -136, -115, -101, -78, -66, -49, -51, -50, -50, -26, -4, 12, 17, 32, 44, 46, -49, 52, 54, 57, 61, 53, 45, 33, 10, -10, -25, -30, -7, -6, -12, -18, -20, -24, -31, -39, -37, -34, -33, -31, -30, --28, -19, -7, 0, 8, 16, 27, 24, 20, 18, 14, 12, 10, 5, 0, -5, -10, -12, -11, -7, -2, -1, -4, -5, -4, --4, -5, -6, -17, -17, -19, -16, -16, -14, -13, -10, -9, -7, -7, 0, 1, 1, 3, 0, -1, -2, -3, -4, -5, -6, --6, -6, -5, -5, -8, -8, -9, -9, -7, -9, -5, -4, -4, -1, -1, -6, 0, -3, -1, -4, -3, 4, -5, -7, -4, --5, -7, -23, -15, -14, -10, -13, -13, -14, -12, -8, 2, 3, 4, 1, 0, -4, -12, -14, -14, -9, -6, 12, 7, 14, -16, 5, 11, 16, 25, 12, 11, 25, 5, 2, 4, -1, -12, -43, -33, -33, -28, -36, -38, -37, -28, -9, 24, 33, 31, -14, 6, -9, -27, -33, -25, -4, 5, 13, 0, 24, 33, 6, 29, 23, 38, 32, 34, 74, 23, 14, 28, 1, -8, -69, --50, -48, -38, -57, -60, -57, -46, -16, 41, 51, 55, 26, 32, 2, -45, -57, -56, -15, -2, 63, 37, 67, 50, -6, 47, -92, 111, 120, 147, 163, 57, 44, 80, 0, -25, -97, -75, -72, -72, -112, -121, -110, -79, -6, 114, 150, 117, 47, 31, -15, --84, -86, -41, 26, 49, -92, -95, -16, 65, 134, 16, -92, -119, -73, -11, -13, 127, 114, -48, 35, 41, 14, -9, -18, -4, -28, 44, 31, 13, -42, -136, -162, -81, 145, 94, 81, 99, -81, -181, -175, -126, -12, 35, -86, -183, -272, -53, 110, 135, 69, --3, -79, -39, 16, 56, 43, 16, 19, -40, -59, -65, -46, -38, -39, -75, -53, -29, 140, 134, -11, -71, -52, 110, 144, 230, -321, 86, -191, 102, -57, -114, -26, -60, -52, -72, -8, 27, 24, -18, -30, 2, 8, 29, 22, 26, 33, 36, 24, 43, 84, -83, 77, 41, 13, 27, 88, 93, 128, 243, -248, -425, -286, -299, -18, -74, -14, 26, 44, 18, 13, 6, 9, -28, -33, -23, --16, -24, -30, -44, -65, -80, -84, -70, -83, -80, -65, -27, 43, 115, 154, 166, 171, 97, 36, 75, 33, 39, 12, 14, 43, --50, 7, 23, 45, 72, 61, 25, 23, 29, 39, 51, 23, -38, -56, -70, -66, -30, 4, 28, 26, 30, 32, 27, 15, 1, -29, 72, 135, 145, 167, 181, 175, 166, 136, 106, -4, -64, -82, -82, -78, -31, 1, -2, -3, -16, -24, -56, -63, -63, -49, --53, -69, -67, -48, -13, 9, 28, 29, 42, 43, 33, 25, 21, 38, 37, 37, 33, 30, 34, 39, 27, -53, -57, -83, -113, --155, -149, -146, -143, -124, -104, -85, -69, -59, -49, -48, -46, -44, -26, -11, -6, 4, 23, 40, 38, 38, 41, 44, 47, 50, -43, 34, 21, 0, -22, -39, -48, -3, -5, -9, -17, -19, -25, -35, -46, -44, -40, -38, -37, -35, -31, -20, -9, -1, 7, -18, 23, 23, 20, 20, 19, 20, 20, 17, 13, 9, 5, 3, 4, 6, 8, 8, 4, -16, -17, -15, -16, -15, -29, -28, --28, -24, -23, -21, -19, -16, -15, -15, -16, -5, -6, -5, -5, -6, -7, -9, -9, -9, -10, -10, -10, -10, -9, -8, -9, --12, -15, -16, -17, -22, -3, -1, -3, 1, 2, 0, 1, -1, 3, -4, -3, 3, -2, -3, -3, -1, -2, -17, -11, -11, --9, -11, -11, -12, -8, -3, 8, 5, 5, 1, 3, -1, -10, -13, -12, -6, -3, 20, 12, 19, 19, 13, 11, 14, 26, -8, 5, 15, 5, 5, 1, 6, -3, -35, -29, -32, -30, -36, -36, -33, -18, 3, 38, 34, 28, 10, 8, -4, -23, -30, --22, 3, 14, 21, 1, 24, 32, 20, 27, 17, 39, 17, 16, 50, 21, 20, 19, 12, 7, -56, -43, -47, -43, -58, -57, --53, -30, 2, 65, 51, 49, 20, 35, 8, -42, -54, -51, -6, 9, 84, 46, 73, 61, 20, 44, 78, 116, 110, 132, 147, -55, 45, 69, 18, -5, -90, -74, -78, -86, -119, -120, -103, -53, 29, 156, 149, 99, 29, 32, -4, -76, -76, -32, 45, 73, --116, -113, -55, 22, 113, 39, -59, -120, -91, -25, -16, 133, 125, -44, 28, 33, 38, 9, -4, 5, 49, 60, 40, 10, -52, --140, -151, -55, 167, 99, 81, 97, -89, -179, -180, -142, 59, 73, -37, -154, -255, -103, 48, 105, 82, 16, -80, -56, -2, 46, -32, 9, 7, -42, -58, -76, -46, -39, -43, -75, -46, -5, 164, 144, -23, -65, -36, 101, 173, 232, 248, 114, -286, -81, -86, --95, -26, -20, -27, -98, -38, 5, 28, -12, -28, -3, -6, 15, 25, 21, 27, 21, 34, 60, 85, 83, 65, 20, -1, 29, -91, 148, 134, 73, -260, -367, -236, -313, 54, 13, 25, 44, 71, 18, 3, 6, 7, -24, -34, -15, -5, -22, -17, -34, -65, --81, -82, -72, -83, -79, -67, -21, 43, 114, 138, 144, 145, 54, 10, 55, 53, 64, 55, 60, -53, -106, -35, 0, 27, 63, -62, 33, 35, 37, 34, 50, 27, -22, -54, -76, -72, -45, -11, 15, 19, 27, 25, 33, 31, 29, 68, 109, 166, 159, 171, -168, 170, 132, 47, 0, 53, -11, -30, -21, -8, 27, 47, 34, 33, 15, -2, -40, -56, -63, -50, -50, -57, -71, -60, -32, --5, 16, 18, 36, 38, 25, 11, 4, 17, 23, 30, 35, 43, 63, 90, 81, -67, -76, -95, -119, -155, -147, -138, -130, -113, --96, -76, -65, -56, -51, -47, -46, -44, -33, -22, -25, -11, 10, 31, 26, 23, 26, 27, 30, 31, 27, 21, 12, -4, -22, --38, -56, -4, -9, -11, -23, -25, -31, -44, -56, -54, -50, -46, -45, -42, -38, -26, -16, -8, -1, 12, 12, 14, 14, 17, -19, 24, 26, 24, 22, 21, 18, 16, 16, 12, 10, 8, 4, -29, -32, -29, -29, -27, -42, -40, -40, -35, -34, -32, -28, --25, -24, -25, -26, -13, -15, -15, -16, -15, -16, -16, -16, -16, -15, -15, -15, -15, -13, -13, -11, -16, -21, -25, -28, -35, --1, 2, -2, 2, 3, 4, 2, -1, 4, -5, -4, -1, -1, -1, -3, 2, 2, -12, -8, -9, -9, -9, -9, -9, -3, -1, 13, 6, 5, 1, 5, 1, -9, -10, -10, -3, 0, 26, 14, 21, 20, 19, 9, 10, 25, 2, -2, 3, 4, 7, -0, 12, 5, -25, -25, -31, -31, -35, -33, -27, -7, 14, 49, 35, 24, 5, 10, 0, -20, -25, -16, 10, 21, 26, 0, -22, 29, 32, 22, 9, 35, 0, -4, 21, 16, 24, 13, 22, 20, -39, -35, -45, -46, -56, -50, -46, -14, 19, 85, 49, -43, 13, 37, 16, -39, -46, -41, 3, 18, 98, 49, 73, 66, 42, 37, 61, 113, 94, 110, 116, 52, 49, 59, 36, 16, --75, -69, -83, -97, -121, -114, -90, -22, 64, 189, 144, 80, 10, 33, 8, -68, -59, -16, 61, 92, -133, -119, -84, -12, 94, -53, -32, -119, -102, -33, -12, 131, 123, -35, 18, 25, 59, 33, 20, 29, 78, 79, 48, 1, -68, -144, -136, -26, 183, 103, -81, 100, -90, -169, -174, -152, 113, 99, 9, -123, -242, -145, -11, 72, 86, 31, -76, -70, -19, 37, 20, -1, -6, -37, -48, --76, -41, -40, -46, -69, -31, 32, 176, 136, -36, -62, -21, 92, 194, 224, 165, 125, -359, -269, -104, -59, -36, 19, -1, -109, --57, -12, 28, -2, -21, -12, -17, 5, 28, 14, 13, -1, 37, 67, 77, 75, 51, 5, -10, 28, 73, 205, 153, -79, -241, --283, -192, -304, 132, 112, 70, 61, 89, 18, -4, 10, 6, -18, -33, -10, -1, -18, -7, -26, -64, -80, -79, -74, -79, -73, --62, -7, 47, 112, 121, 119, 106, 5, -22, 22, 54, 71, 81, 105, -131, -145, -69, -16, 17, 50, 56, 40, 43, 44, 29, -41, 25, -5, -50, -79, -74, -60, -30, -5, 8, 23, 21, 36, 45, 64, 99, 134, 185, 166, 168, 151, 161, 102, -27, -87, -103, 43, 25, 35, 52, 75, 84, 64, 63, 42, 18, -22, -47, -63, -53, -50, -48, -68, -63, -46, -17, 5, 9, 28, 29, -12, -1, -7, 1, 11, 24, 37, 52, 84, 126, 124, -72, -87, -100, -118, -147, -137, -124, -113, -101, -88, -72, -65, -57, -57, --51, -52, -51, -44, -37, -42, -25, -4, 17, 11, 9, 12, 11, 11, 9, 10, 7, 5, -1, -13, -26, -54, -10, -19, -20, --33, -37, -43, -56, -68, -65, -61, -56, -55, -51, -46, -35, -27, -19, -13, -1, -4, 1, 3, 8, 13, 20, 26, 26, 26, -27, 25, 24, 23, 13, 6, 2, -2, -40, -45, -41, -41, -40, -53, -52, -53, -47, -45, -43, -39, -36, -34, -36, -36, -24, --26, -25, -26, -24, -24, -24, -22, -21, -19, -20, -20, -19, -18, -17, -14, -20, -26, -32, -37, -45, 1, 4, 0, 2, 4, -6, 1, -2, 4, -7, -7, -6, -1, 1, -2, 4, 6, -7, -5, -7, -7, -7, -6, -6, 1, 6, 17, 8, 6, 1, -7, 4, -7, -7, -6, 1, 3, 30, 14, 20, 19, 23, 6, 4, 22, -4, -10, -9, 2, 9, -1, 17, 11, -14, -21, --31, -31, -33, -27, -20, 4, 26, 57, 36, 22, 2, 13, 6, -16, -17, -8, 17, 27, 30, -1, 17, 25, 42, 15, -3, -28, -18, -24, -9, 10, 26, 9, 30, 30, -18, -26, -42, -46, -51, -42, -36, 4, 36, 99, 48, 39, 7, 41, 24, -36, --33, -27, 15, 26, 103, 46, 66, 64, 61, 26, 39, 101, 73, 81, 75, 49, 55, 52, 52, 36, -51, -61, -87, -106, -119, --102, -72, 10, 98, 210, 137, 66, -5, 36, 20, -60, -37, 5, 79, 105, -143, -116, -106, -43, 77, 58, -12, -113, -102, -33, --5, 119, 110, -22, 7, 14, 74, 57, 52, 68, 110, 95, 53, -14, -90, -146, -119, 4, 195, 109, 80, 100, -83, -151, -159, --154, 145, 115, 54, -83, -228, -173, -56, 41, 79, 35, -65, -77, -33, 30, 6, -11, -20, -25, -30, -67, -32, -38, -43, -60, --12, 81, 174, 112, -58, -61, -5, 89, 210, 211, 88, 115, -398, -439, -125, -28, -58, 51, 24, -108, -66, -24, 24, 10, -12, --23, -24, -1, 31, 9, 1, -18, 36, 64, 63, 63, 34, -8, -17, 23, 47, 246, 169, -193, -216, -215, -161, -275, 200, 209, -123, 81, 93, 18, -4, 14, 7, -8, -30, -9, 0, -11, -1, -21, -59, -77, -77, -76, -72, -63, -51, 7, 52, 110, 105, -90, 59, -34, -45, -6, 40, 59, 86, 133, -181, -162, -92, -27, 12, 35, 44, 44, 47, 45, 24, 28, 18, 8, -47, -78, --78, -72, -49, -28, -7, 14, 16, 38, 59, 93, 118, 146, 185, 166, 161, 131, 140, 71, -71, -145, 136, 86, 75, 82, 92, -106, 106, 87, 85, 64, 36, -3, -36, -62, -56, -51, -41, -59, -59, -52, -24, -5, 2, 17, 16, -2, -12, -13, -7, 8, -24, 40, 61, 95, 143, 148, -69, -89, -97, -111, -133, -121, -104, -91, -85, -77, -67, -64, -61, -66, -59, -61, -61, -56, -50, --52, -36, -18, 2, -3, -3, 1, -3, -7, -11, -7, -5, 0, 2, -2, -11, -46, -22, -33, -34, -46, -50, -57, -70, -81, --77, -72, -67, -65, -60, -55, -45, -39, -32, -26, -16, -20, -15, -11, -5, 3, 12, 20, 21, 24, 26, 26, 25, 23, 8, --3, -9, -14, -49, -55, -51, -52, -51, -61, -61, -63, -57, -56, -53, -49, -46, -44, -45, -44, -34, -36, -35, -36, -33, -31, --30, -28, -26, -24, -24, -24, -24, -24, -23, -19, -25, -30, -38, -44, -51, 4, 7, 2, 3, 5, 10, 2, -2, 5, -7, --8, -9, 0, 3, -1, 7, 9, -1, -1, -3, -4, -3, -2, -1, 6, 11, 21, 11, 9, 3, 11, 8, -4, -3, -1, -6, 7, 32, 14, 17, 17, 29, 2, -2, 19, -11, -17, -18, 1, 10, 1, 21, 18, -1, -15, -28, -29, -28, -20, -10, -17, 37, 63, 38, 22, 1, 18, 13, -11, -8, 1, 26, 32, 31, -2, 11, 18, 51, 6, -14, 21, -35, -42, -35, 2, -25, 5, 36, 38, 4, -16, -37, -43, -42, -31, -22, 22, 52, 106, 51, 40, 6, 48, 35, -32, -19, -10, 29, 33, 101, -40, 51, 56, 79, 12, 14, 83, 44, 46, 30, 44, 59, 45, 63, 54, -18, -48, -88, -110, -109, -84, -47, 45, 129, 219, -132, 57, -14, 45, 36, -49, -11, 30, 99, 112, -149, -108, -120, -67, 58, 55, 2, -97, -90, -27, 0, 99, 88, -4, -4, -2, 79, 77, 87, 112, 137, 107, 57, -32, -111, -144, -98, 34, 205, 118, 80, 90, -74, -130, -137, -151, 150, 126, 102, -32, --208, -187, -88, 14, 64, 32, -52, -77, -42, 24, -7, -20, -30, -9, -9, -48, -22, -35, -36, -46, 11, 128, 157, 74, -88, --63, 12, 95, 225, 198, 20, 86, -385, -564, -168, -26, -85, 69, 43, -92, -66, -31, 19, 21, -4, -32, -28, -5, 32, 9, --5, -22, 32, 54, 50, 46, 14, -21, -26, 15, 24, 259, 166, -262, -197, -168, -133, -217, 244, 294, 183, 107, 83, 21, 2, -17, 9, 1, -24, -11, -2, -2, 4, -15, -49, -69, -73, -73, -63, -50, -32, 19, 58, 107, 92, 63, 3, -61, -55, -22, -17, 30, 71, 135, -200, -158, -104, -34, 8, 18, 28, 46, 45, 41, 19, 15, 9, 14, -44, -75, -82, -81, -65, -51, -24, -2, 11, 39, 68, 110, 126, 148, 175, 160, 147, 108, 106, 37, -90, -170, 148, 112, 110, 112, 114, 119, 112, 97, 95, 79, -52, 16, -22, -56, -57, -51, -37, -48, -49, -49, -27, -13, -6, 6, 4, -12, -17, -13, -6, 10, 30, 49, 69, 99, 142, -151, -62, -85, -89, -98, -115, -100, -80, -65, -65, -63, -61, -61, -64, -72, -65, -67, -69, -64, -58, -56, -42, -28, -12, -14, --13, -7, -12, -17, -23, -17, -14, -4, 3, 5, 0, -37, -37, -49, -49, -60, -65, -71, -83, -92, -88, -82, -76, -72, -67, --61, -54, -50, -44, -39, -31, -35, -30, -24, -18, -10, -1, 8, 9, 13, 15, 16, 15, 13, -4, -18, -25, -30, -55, -61, --58, -58, -58, -66, -67, -69, -64, -62, -60, -56, -53, -50, -50, -50, -43, -44, -42, -44, -40, -37, -35, -33, -31, -28, -29, --29, -29, -29, -29, -26, -31, -36, -43, -49, -54, 8, 10, 4, 5, 6, 14, 4, -1, 6, -7, -9, -10, 1, 4, 1, -10, 13, 5, 3, 0, -1, 1, 3, 5, 12, 16, 24, 15, 13, 6, 15, 12, 0, 2, 4, 11, 11, 33, 14, 13, -13, 33, -1, -7, 16, -17, -24, -23, -1, 10, 2, 23, 23, 11, -8, -23, -24, -21, -10, 3, 29, 46, 65, 39, 23, -2, 23, 21, -5, 2, 11, 35, 36, 32, -2, 3, 11, 59, -2, -23, 15, -50, -59, -54, -8, 20, 3, 38, 43, 23, --7, -31, -38, -32, -18, -4, 40, 66, 107, 54, 44, 10, 55, 44, -25, -4, 6, 43, 39, 97, 35, 33, 42, 94, -4, --12, 61, 11, 8, -14, 35, 59, 40, 69, 69, 18, -34, -85, -106, -93, -60, -14, 80, 154, 214, 122, 51, -14, 53, 51, --34, 15, 53, 116, 116, -148, -98, -129, -85, 39, 50, 15, -71, -69, -18, 2, 73, 63, 15, -16, -12, 73, 90, 116, 146, -152, 110, 54, -50, -125, -131, -63, 74, 214, 133, 81, 70, -68, -109, -108, -140, 133, 135, 146, 23, -180, -192, -114, -8, 46, -25, -39, -70, -48, 16, -17, -22, -34, 7, 13, -21, -13, -31, -22, -27, 35, 164, 127, 25, -123, -67, 28, 105, 234, 181, --42, 43, -322, -624, -237, -69, -103, 68, 49, -61, -59, -34, 15, 28, 3, -39, -29, -8, 31, 12, -1, -14, 29, 43, 35, -26, -6, -30, -33, 10, 19, 238, 137, -274, -181, -135, -104, -130, 254, 351, 240, 137, 69, 29, 15, 19, 9, 8, -17, -14, --5, 7, 6, -9, -34, -56, -65, -65, -52, -36, -11, 30, 63, 99, 79, 35, -48, -78, -60, -33, -7, -1, 43, 115, -190, --140, -108, -41, 2, 2, 11, 44, 38, 31, 11, 3, 0, 13, -40, -68, -86, -86, -77, -70, -41, -12, 5, 35, 69, 118, -127, 144, 161, 149, 127, 82, 70, 10, -93, -164, 142, 124, 125, 122, 119, 117, 105, 94, 95, 85, 63, 34, -5, -46, -53, --49, -34, -38, -38, -40, -26, -18, -13, 0, -2, -16, -13, -5, 4, 20, 44, 67, 82, 100, 128, 138, -51, -73, -75, -77, --88, -72, -50, -34, -42, -45, -51, -55, -63, -71, -67, -70, -73, -68, -62, -56, -46, -36, -25, -23, -17, -9, -13, -17, -21, --19, -17, -6, 1, 6, 4, -28, -54, -65, -65, -73, -78, -83, -93, -101, -95, -88, -81, -75, -69, -64, -60, -56, -51, -48, --43, -45, -40, -36, -30, -23, -16, -8, -8, -6, -4, -2, -2, -4, -20, -34, -43, -48, -58, -64, -61, -63, -63, -67, -68, --72, -67, -65, -62, -60, -57, -54, -53, -52, -49, -49, -48, -49, -45, -42, -39, -37, -35, -32, -33, -33, -34, -35, -36, -34, --38, -41, -47, -53, -53, 10, 13, 7, 6, 7, 17, 5, 0, 8, -7, -9, -10, 1, 5, 3, 12, 15, 11, 6, 3, -2, 4, 7, 10, 16, 20, 26, 18, 16, 9, 18, 15, 3, 6, 8, 16, 14, 33, 14, 9, 10, 37, -3, -11, 13, --22, -30, -26, -4, 8, 4, 25, 27, 21, -2, -18, -19, -13, -1, 15, 39, 53, 64, 39, 23, 4, 27, 26, 1, 11, -19, 41, 39, 33, -1, -3, 3, 62, -9, -30, 10, -62, -72, -66, -19, 13, 0, 38, 44, 37, 0, -25, -32, -22, -5, -15, 55, 76, 103, 56, 47, 16, 59, 49, -18, 8, 20, 54, 45, 90, 30, 15, 27, 103, -19, -36, 39, -21, -29, -50, -22, 52, 36, 72, 79, 49, -21, -77, -97, -75, -34, 23, 109, 170, 198, 107, 41, -11, 57, 60, -16, 37, 71, 128, 116, --138, -87, -133, -97, 19, 47, 30, -38, -46, -10, 0, 43, 38, 33, -29, -30, 55, 91, 131, 161, 149, 100, 39, -66, -126, --109, -7, 127, 218, 145, 76, 36, -69, -93, -82, -123, 100, 137, 187, 76, -146, -192, -136, -30, 26, 15, -29, -58, -49, 5, --24, -19, -32, 21, 32, 7, -7, -25, -5, -6, 57, 179, 90, -25, -159, -70, 40, 113, 226, 155, -97, -3, -234, -632, -325, --149, -100, 47, 40, -26, -48, -34, 10, 30, 8, -43, -29, -12, 24, 18, 9, 2, 29, 31, 20, 4, -28, -41, -44, 4, -35, 186, 84, -244, -155, -103, -81, -34, 228, 364, 284, 168, 60, 40, 35, 22, 8, 9, -11, -16, -7, 12, 8, -1, -16, --39, -54, -53, -40, -21, 11, 36, 64, 84, 63, 11, -78, -87, -63, -40, -29, -28, 13, 82, -157, -115, -106, -47, -7, -11, --3, 40, 28, 16, 1, -7, -7, 6, -35, -59, -89, -88, -86, -83, -57, -28, -1, 28, 65, 116, 121, 136, 144, 136, 105, -56, 40, -8, -86, -136, 121, 119, 122, 114, 109, 103, 89, 81, 83, 82, 67, 48, 12, -32, -47, -47, -34, -30, -28, -29, --23, -21, -20, -3, -3, -13, 0, 12, 22, 37, 64, 90, 96, 100, 111, 115, -34, -53, -53, -48, -53, -36, -15, 1, -13, --21, -37, -43, -57, -65, -65, -68, -73, -68, -62, -55, -48, -42, -36, -28, -18, -7, -9, -10, -11, -13, -15, -9, -4, 2, -4, -17, -68, -76, -78, -81, -87, -91, -98, -104, -97, -89, -82, -75, -69, -63, -61, -58, -55, -52, -49, -51, -47, -43, -39, --34, -29, -23, -26, -25, -26, -24, -23, -24, -36, -48, -58, -63, -58, -62, -62, -63, -64, -64, -65, -71, -66, -64, -61, -60, --57, -53, -53, -52, -51, -51, -50, -51, -47, -44, -42, -40, -38, -35, -36, -36, -37, -39, -41, -41, -44, -46, -49, -53, -51, -13, 15, 9, 8, 9, 20, 6, 2, 10, -6, -8, -8, 2, 6, 5, 13, 16, 15, 9, 6, 5, 7, 11, 15, 20, -23, 27, 20, 18, 12, 20, 17, 6, 10, 12, 20, 17, 32, 15, 7, 8, 38, -4, -13, 10, -26, -33, -26, -7, 5, -4, 25, 29, 28, 4, -11, -13, -6, 8, 28, 48, 58, 61, 38, 24, 8, 29, 29, 7, 19, 26, 46, 40, 35, 0, --7, -2, 62, -15, -34, 6, -70, -81, -70, -29, 3, -4, 36, 42, 44, 6, -18, -26, -13, 6, 33, 67, 84, 97, 58, -49, 24, 59, 49, -9, 19, 32, 64, 51, 82, 25, 1, 13, 105, -32, -57, 18, -50, -62, -75, 6, 41, 33, 71, 84, -71, -7, -63, -82, -55, -7, 60, 135, 180, 178, 93, 33, -2, 57, 63, 3, 57, 86, 137, 114, -118, -74, -127, -99, 3, -47, 47, -1, -24, -7, -7, 14, 16, 46, -42, -50, 30, 79, 126, 155, 127, 76, 14, -79, -118, -89, 54, 181, 212, 150, -64, -4, -72, -81, -63, -99, 61, 127, 215, 121, -107, -189, -156, -52, 4, 6, -20, -44, -48, -7, -25, -10, -23, 33, 46, -32, -2, -17, 14, 20, 78, 170, 49, -69, -191, -71, 51, 116, 201, 117, -143, -44, -150, -604, -409, -236, -75, 14, 14, 5, --34, -29, 6, 27, 10, -45, -27, -18, 14, 22, 21, 20, 30, 20, 3, -20, -48, -51, -53, 4, 69, 124, 18, -204, -109, --58, -62, 43, 173, 328, 309, 199, 64, 55, 56, 28, 4, 5, -8, -17, -8, 13, 8, 7, 3, -21, -40, -38, -27, -7, -32, 40, 61, 68, 48, -7, -89, -82, -55, -39, -47, -45, 1, 48, -109, -87, -100, -54, -18, -20, -13, 35, 17, 0, -12, --14, -12, -2, -28, -50, -90, -89, -92, -90, -71, -43, -8, 22, 60, 104, 112, 128, 129, 122, 85, 37, 17, -17, -68, -96, -87, 98, 105, 94, 89, 80, 67, 62, 65, 71, 65, 57, 26, -17, -38, -43, -36, -27, -23, -20, -19, -20, -22, -2, 3, -0, 20, 33, 44, 60, 88, 115, 108, 98, 94, 86, -10, -26, -25, -13, -12, 4, 23, 39, 19, 6, -17, -27, -47, -57, --59, -62, -69, -64, -59, -51, -48, -45, -43, -31, -19, -5, -3, 0, 5, -3, -9, -7, -5, 1, 6, -2, -75, -79, -84, --82, -88, -91, -95, -99, -92, -85, -80, -72, -66, -62, -61, -58, -56, -54, -53, -54, -51, -48, -45, -41, -38, -34, -39, -42, --44, -43, -42, -42, -48, -57, -66, -72, -55, -58, -59, -60, -61, -58, -59, -65, -61, -60, -58, -57, -55, -52, -51, -51, -51, --51, -51, -52, -48, -46, -43, -41, -39, -37, -38, -39, -40, -43, -45, -47, -49, -50, -50, -52, -49, 15, 17, 11, 10, 10, -21, 7, 4, 11, -4, -7, -6, 3, 7, 6, 14, 17, 18, 11, 9, 7, 10, 13, 20, 23, 25, 27, 22, 20, 15, -21, 19, 9, 14, 16, 24, 19, 31, 15, 6, 7, 36, -5, -15, 7, -29, -35, -24, -10, 2, 4, 25, 30, 31, 10, --4, -7, 0, 16, 39, 55, 62, 56, 37, 24, 13, 29, 30, 13, 25, 33, 51, 41, 37, 2, -7, -4, 57, -18, -36, -1, -76, -87, -68, -38, -7, -9, 31, 38, 46, 11, -11, -21, -6, 15, 50, 77, 88, 87, 58, 50, 34, 55, 45, 1, -30, 44, 73, 55, 74, 21, -8, 3, 97, -44, -74, -1, -77, -90, -87, -12, 26, 29, 66, 84, 85, 9, -44, -64, -34, -18, 94, 156, 185, 156, 82, 30, 13, 53, 60, 21, 74, 101, 145, 111, -85, -56, -109, -90, -7, 49, 64, 39, -3, -9, --17, -11, -1, 56, -53, -69, 0, 51, 101, 127, 90, 43, -17, -90, -108, -78, 103, 218, 193, 145, 50, -43, -74, -70, -52, --67, 24, 106, 225, 149, -69, -184, -173, -75, -14, 1, -15, -30, -45, -19, -21, 2, -12, 42, 55, 53, 5, -5, 32, 52, -98, 143, 8, -108, -211, -68, 60, 111, 161, 69, -178, -75, -95, -555, -469, -306, -32, -20, -19, 25, -22, -22, 4, 20, 8, --45, -27, -24, 1, 23, 30, 34, 28, 8, -17, -44, -66, -59, -58, 11, 114, 61, -51, -168, -64, -7, -32, 83, 102, 249, -309, 223, 82, 66, 72, 38, 3, 1, -5, -16, -8, 9, 8, 15, 20, -2, -23, -23, -14, 7, 49, 44, 56, 51, 35, --19, -89, -69, -41, -31, -58, -51, 15, 17, -56, -56, -89, -61, -30, -23, -16, 30, 7, -14, -23, -20, -16, -10, -21, -41, --87, -89, -94, -90, -79, -55, -17, 16, 54, 89, 102, 119, 118, 107, 66, 26, 3, -20, -50, -54, 46, 65, 77, 68, 65, -55, 44, 41, 45, 56, 57, 59, 36, -3, -28, -39, -39, -28, -23, -17, -17, -17, -21, 3, 14, 20, 46, 59, 70, 85, -112, 137, 118, 95, 75, 54, 20, 7, 8, 22, 28, 41, 57, 72, 49, 34, 7, -8, -33, -46, -50, -54, -63, -58, -54, --47, -46, -45, -46, -33, -19, -6, 1, 11, 22, 13, 5, 3, 2, 7, 15, 20, -73, -74, -80, -73, -80, -81, -82, -86, --80, -77, -73, -67, -63, -61, -60, -58, -57, -55, -55, -55, -52, -49, -47, -44, -43, -40, -47, -52, -56, -57, -55, -55, -56, --60, -66, -72, -52, -52, -55, -56, -57, -51, -52, -57, -56, -55, -54, -54, -53, -51, -51, -51, -51, -51, -51, -52, -49, -47, --44, -43, -41, -39, -40, -41, -43, -45, -48, -51, -52, -52, -50, -50, -50, 16, 17, 12, 11, 11, 21, 8, 5, 11, -3, --5, -3, 3, 7, 6, 14, 17, 19, 13, 11, 8, 11, 15, 22, 24, 25, 24, 21, 20, 17, 20, 18, 11, 15, 18, -25, 20, 29, 15, 7, 7, 30, -6, -16, 1, -31, -35, -22, -13, -1, 1, 23, 30, 31, 15, 3, -2, 6, 22, 46, -59, 62, 49, 35, 24, 18, 27, 28, 16, 29, 37, 53, 40, 37, 6, -4, -4, 48, -19, -36, -7, -79, -91, -64, -46, --17, -17, 26, 33, 41, 15, -5, -16, -1, 21, 60, 82, 88, 73, 57, 50, 43, 46, 37, 7, 37, 53, 80, 57, 63, -19, -12, -6, 79, -52, -86, -21, -100, -113, -88, -30, 7, 21, 59, 80, 88, 24, -21, -43, -14, 39, 120, 168, 182, 131, -75, 32, 30, 47, 52, 33, 85, 112, 149, 104, -41, -35, -78, -67, -9, 56, 83, 77, 14, -13, -25, -29, -12, 62, -61, --85, -31, 12, 58, 76, 39, 3, -53, -101, -100, -74, 129, 229, 161, 127, 32, -75, -73, -59, -46, -30, -7, 79, 217, 161, --35, -179, -190, -96, -26, 2, -10, -19, -40, -31, -15, 15, 2, 48, 60, 70, 16, 11, 50, 85, 113, 104, -30, -137, -217, --59, 67, 99, 112, 17, -194, -96, -76, -491, -493, -343, 10, -46, -50, 30, -14, -15, 2, 13, 5, -41, -28, -32, -14, 17, -31, 34, 21, -5, -39, -66, -81, -66, -59, 22, 156, 1, -117, -142, -37, 34, 17, 83, 39, 146, 281, 234, 108, 71, 77, -51, 4, 0, -2, -13, -8, 1, 7, 21, 34, 14, -6, -9, -1, 20, 61, 50, 49, 33, 23, -24, -76, -52, -27, -24, --53, -38, 46, 2, -9, -25, -73, -64, -41, -23, -14, 23, -1, -22, -31, -23, -18, -15, -14, -32, -79, -85, -93, -87, -82, --62, -25, 11, 48, 77, 94, 110, 108, 91, 49, 17, -7, -24, -36, -18, 3, 26, 42, 40, 41, 33, 25, 23, 27, 39, -44, 55, 41, 10, -17, -32, -40, -32, -27, -18, -15, -12, -15, 12, 30, 43, 72, 86, 98, 109, 130, 149, 124, 91, 54, -20, 52, 42, 40, 53, 60, 70, 81, 94, 72, 56, 32, 13, -15, -30, -37, -43, -56, -51, -47, -42, -42, -43, -46, -33, --21, -9, 4, 20, 38, 30, 22, 18, 16, 21, 32, 45, -64, -62, -69, -58, -64, -63, -62, -65, -63, -64, -65, -61, -61, --63, -60, -57, -56, -54, -55, -53, -50, -47, -45, -43, -43, -41, -48, -55, -59, -61, -59, -59, -55, -55, -59, -64, -46, -45, --49, -51, -52, -44, -45, -48, -50, -50, -50, -52, -52, -53, -52, -51, -51, -51, -51, -50, -48, -46, -44, -43, -42, -40, -41, --42, -43, -45, -47, -50, -50, -50, -47, -45, -49, 15, 17, 13, 12, 12, 20, 8, 6, 10, -2, -4, -1, 3, 6, 6, -13, 15, 18, 13, 11, 8, 11, 15, 22, 24, 24, 21, 20, 19, 18, 18, 16, 11, 16, 19, 26, 20, 26, 15, 8, -5, 22, -6, -16, -6, -32, -34, -20, -14, -5, -3, 20, 28, 28, 18, 9, 3, 11, 26, 50, 60, 60, 42, 33, 24, -23, 24, 24, 16, 32, 40, 53, 37, 36, 10, 0, -3, 35, -18, -33, -17, -78, -92, -62, -52, -25, -27, 21, 27, 31, -17, 1, -12, 4, 25, 65, 82, 85, 60, 55, 49, 50, 36, 27, 10, 43, 59, 83, 56, 49, 15, -14, -13, 54, -55, --92, -42, -118, -130, -84, -47, -12, 8, 51, 72, 82, 35, 2, -20, 8, 58, 137, 173, 175, 108, 70, 36, 48, 39, 40, -38, 92, 119, 148, 93, 11, -7, -35, -33, -3, 67, 101, 110, 30, -15, -28, -37, -19, 65, -64, -95, -60, -29, 6, 13, --14, -38, -91, -112, -95, -72, 139, 218, 123, 101, 13, -95, -64, -44, -43, 10, -33, 48, 190, 156, -3, -173, -207, -113, -33, -4, -7, -9, -35, -41, -9, 25, 15, 50, 62, 85, 32, 32, 67, 113, 119, 58, -66, -157, -207, -40, 76, 87, 61, -35, --196, -108, -80, -409, -472, -343, 32, -61, -69, 21, -10, -9, 1, 7, 3, -35, -30, -40, -27, 7, 25, 21, 7, -19, -59, --82, -89, -71, -51, 35, 183, -51, -170, -130, -18, 71, 77, 58, -2, 45, 231, 229, 131, 65, 69, 60, 8, 1, 2, -9, --8, -7, 5, 26, 43, 28, 11, 4, 14, 33, 69, 57, 43, 14, 10, -27, -55, -36, -16, -21, -27, -1, 84, 6, 31, -2, -52, -63, -47, -19, -9, 14, -6, -24, -32, -25, -18, -16, -7, -23, -66, -79, -89, -81, -80, -64, -32, 6, 42, 67, -86, 99, 95, 73, 33, 5, -16, -29, -30, 10, -38, -14, 6, 13, 20, 15, 11, 9, 14, 23, 28, 46, 40, 20, -7, --24, -39, -37, -33, -24, -16, -6, -6, 25, 47, 64, 96, 111, 123, 128, 138, 146, 119, 82, 31, -13, 80, 73, 69, 77, -84, 90, 95, 103, 85, 72, 52, 33, 4, -10, -22, -31, -47, -43, -40, -37, -39, -40, -43, -32, -22, -13, 5, 25, 48, -43, 38, 36, 34, 39, 53, 70, -50, -46, -53, -40, -45, -44, -42, -43, -46, -51, -56, -56, -59, -64, -60, -57, -54, -52, --53, -49, -46, -43, -41, -40, -39, -39, -44, -50, -53, -55, -53, -52, -46, -43, -45, -50, -37, -35, -40, -42, -44, -34, -36, --38, -42, -44, -45, -49, -50, -53, -50, -48, -50, -48, -47, -45, -44, -43, -42, -41, -40, -39, -40, -40, -40, -40, -42, -44, --43, -43, -41, -38, -46, 14, 16, 13, 12, 11, 16, 7, 6, 6, -2, -4, -2, 1, 4, 3, 11, 13, 16, 12, 11, -7, 11, 14, 21, 23, 23, 18, 18, 18, 19, 15, 13, 10, 16, 19, 25, 19, 21, 13, 7, 4, 11, -6, -15, -14, --31, -32, -20, -15, -8, -8, 17, 25, 23, 20, 13, 8, 15, 29, 50, 59, 57, 36, 31, 24, 28, 20, 18, 14, 32, -41, 50, 32, 32, 15, 4, -1, 20, -15, -29, -30, -76, -90, -63, -57, -30, -37, 16, 21, 20, 17, 4, -7, 8, 27, -66, 80, 79, 49, 52, 48, 57, 26, 16, 10, 47, 64, 81, 53, 32, 11, -15, -19, 23, -54, -92, -65, -130, -139, -78, --59, -29, -9, 42, 62, 68, 43, 21, 3, 28, 73, 145, 172, 164, 91, 67, 43, 66, 31, 27, 34, 94, 122, 141, 78, -64, 26, 11, 8, 11, 79, 117, 135, 47, -10, -23, -36, -20, 64, -61, -97, -85, -66, -46, -49, -63, -77, -126, -122, -92, --69, 134, 192, 84, 70, -2, -98, -48, -27, -39, 48, -53, 17, 149, 138, 24, -165, -217, -123, -39, 4, -3, -3, -31, -46, --3, 32, 25, 47, 61, 95, 50, 55, 83, 134, 115, 13, -98, -169, -183, -14, 84, 73, 13, -80, -185, -112, -95, -317, -411, --312, 25, -61, -71, 1, -8, -3, -1, 4, 2, -27, -33, -46, -37, -6, 11, -1, -10, -32, -74, -91, -90, -72, -33, 50, -186, -90, -199, -110, 1, 100, 134, 23, -10, -27, 167, 201, 139, 50, 48, 58, 12, 2, 6, -4, -9, -14, 4, 28, 49, -37, 24, 17, 30, 45, 72, 62, 38, -2, -1, -29, -34, -25, -8, -18, 16, 51, 115, 27, 57, 25, -30, -55, -45, -13, --2, 3, -8, -20, -26, -23, -16, -14, -1, -14, -49, -69, -82, -74, -73, -61, -35, 3, 38, 59, 76, 84, 79, 50, 14, --11, -29, -37, -27, 28, -72, -51, -27, -11, 2, 0, 0, 0, 4, 10, 13, 32, 35, 27, 3, -16, -36, -41, -40, -32, --18, -2, 4, 37, 63, 80, 112, 128, 140, 136, 134, 127, 100, 64, 9, -41, 96, 92, 88, 90, 96, 98, 98, 101, 89, -81, 68, 50, 23, 10, -7, -19, -39, -35, -33, -32, -34, -37, -40, -32, -24, -17, 4, 26, 50, 50, 51, 52, 51, 55, -70, 86, -30, -26, -35, -22, -27, -26, -24, -24, -31, -40, -48, -51, -56, -63, -59, -54, -51, -49, -50, -47, -43, -40, -37, --36, -36, -35, -38, -42, -43, -44, -41, -38, -31, -27, -27, -30, -27, -24, -30, -32, -35, -25, -27, -28, -33, -36, -39, -43, --47, -51, -46, -44, -47, -44, -43, -41, -41, -40, -40, -39, -39, -38, -37, -36, -36, -35, -34, -35, -34, -34, -32, -29, -43, -11, 14, 12, 11, 10, 12, 7, 5, 2, -2, -4, -3, 0, 3, 1, 9, 10, 13, 11, 10, 7, 10, 13, 19, 20, -20, 15, 16, 16, 19, 12, 10, 8, 15, 18, 23, 16, 16, 11, 7, 1, 0, -6, -14, -23, -29, -28, -20, -14, -10, --14, 12, 20, 17, 19, 16, 12, 19, 31, 48, 56, 52, 29, 27, 23, 31, 16, 13, 10, 31, 41, 46, 27, 28, 19, -6, 0, 5, -11, -23, -44, -71, -87, -68, -60, -34, -46, 11, 13, 8, 15, 6, -1, 11, 28, 62, 75, 73, 40, 49, -45, 62, 16, 7, 5, 48, 65, 77, 47, 17, 8, -18, -26, -9, -50, -87, -87, -133, -140, -73, -65, -42, -28, 33, 50, -50, 47, 37, 24, 46, 84, 145, 167, 151, 75, 62, 48, 82, 25, 14, 23, 91, 121, 128, 62, 110, 60, 54, 46, 30, -91, 129, 149, 62, 1, -12, -27, -17, 59, -53, -91, -105, -97, -91, -100, -104, -112, -156, -130, -90, -61, 118, 155, 45, 38, --14, -86, -30, -10, -31, 82, -67, -10, 102, 110, 46, -152, -215, -124, -43, 1, -2, 1, -27, -47, 1, 35, 31, 41, 58, -100, 69, 79, 96, 142, 101, -23, -121, -173, -152, 12, 88, 58, -30, -116, -167, -111, -117, -229, -326, -260, -7, -49, -56, -21, --7, 1, -2, 3, 3, -18, -33, -51, -44, -18, -5, -26, -27, -43, -85, -94, -87, -73, -9, 65, 166, -118, -203, -71, 23, -118, 180, -14, 17, -52, 94, 145, 124, 29, 22, 47, 13, 2, 6, 0, -9, -17, 2, 28, 51, 43, 35, 28, 43, 54, -68, 63, 34, -13, -10, -30, -20, -21, -3, -8, 63, 103, 129, 63, 69, 39, -7, -40, -33, -6, 2, -7, -8, -14, -16, --19, -14, -10, 4, -5, -29, -55, -71, -67, -63, -54, -35, 1, 32, 51, 62, 64, 58, 24, -8, -30, -44, -46, -26, 39, --92, -79, -54, -32, -15, -11, -7, -6, -3, -2, -1, 17, 27, 30, 10, -7, -31, -43, -46, -40, -23, -3, 11, 45, 72, -89, 120, 136, 146, 133, 117, 95, 68, 35, -15, -62, 96, 96, 94, 91, 94, 93, 89, 88, 83, 82, 77, 63, 40, 29, -7, -9, -32, -27, -26, -26, -28, -32, -37, -31, -25, -21, 1, 23, 47, 52, 59, 64, 63, 66, 77, 89, -5, -2, -13, --3, -8, -9, -8, -9, -17, -28, -38, -44, -49, -57, -54, -50, -47, -46, -48, -46, -42, -39, -36, -35, -34, -34, -33, -34, --32, -31, -27, -22, -16, -10, -7, -7, -18, -14, -20, -22, -25, -17, -19, -20, -26, -29, -33, -37, -41, -46, -41, -39, -42, --40, -39, -38, -38, -38, -38, -38, -38, -38, -36, -34, -33, -30, -28, -27, -26, -25, -24, -20, -40, 10, 12, 12, 10, 9, -8, 6, 5, -2, -3, -5, -7, -2, 0, -2, 6, 8, 9, 9, 9, 7, 9, 12, 17, 19, 18, 12, 14, 14, 19, -9, 7, 6, 14, 17, 21, 14, 12, 10, 5, -1, -9, -6, -13, -29, -24, -22, -21, -12, -10, -18, 7, 15, 12, 17, -17, 16, 22, 32, 45, 53, 48, 24, 24, 22, 34, 13, 9, 6, 30, 39, 41, 23, 25, 23, 8, 1, -7, -7, -18, --57, -65, -83, -76, -60, -37, -53, 5, 5, -2, 11, 8, 5, 15, 30, 57, 71, 67, 33, 45, 43, 66, 10, 1, 1, -49, 65, 69, 42, 4, 6, -20, -32, -37, -44, -78, -106, -127, -131, -69, -65, -48, -46, 23, 35, 31, 47, 46, 41, 61, -92, 140, 160, 137, 61, 54, 51, 96, 23, 5, 13, 86, 117, 112, 47, 145, 91, 89, 78, 50, 101, 135, 147, 73, 14, -3, -13, -10, 50, -38, -78, -118, -118, -124, -135, -134, -138, -175, -132, -84, -43, 100, 116, 13, 10, -19, -63, -11, 6, -16, -109, -71, -30, 55, 79, 61, -134, -199, -117, -45, -4, -4, 3, -23, -44, 2, 34, 32, 34, 53, 99, 86, 99, 105, 135, -77, -50, -138, -170, -117, 37, 91, 46, -59, -138, -147, -105, -138, -150, -239, -205, -55, -29, -30, -37, -2, 5, -2, 2, 7, --9, -31, -51, -47, -28, -21, -47, -40, -52, -89, -90, -78, -68, 21, 80, 134, -136, -191, -26, 44, 129, 216, -43, 66, -25, -24, 68, 86, 6, -1, 30, 11, -1, 3, 2, -7, -17, 1, 27, 51, 47, 43, 39, 55, 59, 61, 59, 31, -17, -16, --32, -10, -20, 3, 16, 108, 141, 122, 98, 72, 47, 15, -18, -13, 1, 3, -14, -6, -6, -5, -12, -11, -7, 7, 2, --10, -39, -57, -57, -51, -43, -29, 0, 25, 44, 46, 42, 34, -2, -30, -49, -58, -50, -21, 47, -96, -94, -71, -48, -29, --20, -12, -10, -7, -9, -10, 3, 17, 28, 16, 0, -24, -43, -50, -45, -28, -6, 14, 48, 75, 92, 121, 135, 140, 120, -93, 57, 30, 3, -36, -72, 81, 84, 85, 79, 81, 78, 71, 67, 70, 75, 79, 69, 52, 44, 18, -1, -25, -20, -20, --21, -23, -28, -33, -29, -25, -23, -1, 20, 43, 51, 62, 71, 68, 67, 72, 78, 20, 24, 11, 17, 11, 9, 10, 7, --1, -13, -25, -31, -38, -45, -44, -41, -40, -41, -45, -44, -41, -37, -35, -34, -33, -33, -29, -26, -22, -18, -13, -6, 0, -7, 13, 16, -10, -5, -11, -13, -16, -9, -12, -14, -20, -23, -27, -31, -35, -40, -34, -33, -38, -36, -35, -35, -36, -36, --36, -36, -36, -37, -34, -31, -29, -25, -22, -19, -18, -17, -15, -13, -37, 8, 10, 11, 9, 7, 5, 6, 4, -6, -3, --6, -9, -4, -1, -4, 4, 5, 7, 7, 7, 6, 8, 10, 15, 16, 16, 10, 12, 13, 18, 7, 5, 3, 13, 15, -18, 12, 8, 9, 2, -4, -15, -5, -10, -33, -19, -16, -22, -9, -9, -20, 2, 9, 8, 15, 17, 18, 24, 32, 42, -48, 42, 18, 20, 20, 36, 11, 5, 2, 27, 36, 35, 18, 21, 25, 7, 0, -16, -3, -13, -68, -59, -76, -86, -59, --38, -57, -2, -3, -8, 7, 7, 10, 18, 31, 52, 66, 61, 26, 39, 38, 68, 5, -4, -3, 48, 62, 60, 36, -6, -3, -24, -37, -59, -37, -66, -118, -112, -114, -63, -58, -47, -58, 10, 19, 13, 43, 50, 55, 71, 97, 132, 148, 121, 46, -41, 49, 106, 21, -4, 3, 80, 108, 92, 33, 168, 116, 114, 100, 69, 109, 131, 133, 77, 24, 15, 0, -2, 39, -19, --57, -123, -130, -144, -154, -152, -155, -181, -129, -73, -12, 85, 79, -13, -13, -23, -37, 1, 19, 5, 128, -71, -42, 13, 48, -68, -111, -173, -103, -43, -8, -8, 2, -16, -39, 1, 29, 30, 26, 45, 93, 97, 113, 108, 117, 47, -69, -152, -164, -81, -57, 90, 39, -78, -151, -130, -98, -146, -84, -168, -158, -103, -11, -3, -41, 7, 7, 2, 1, 8, 0, -25, -48, -48, -33, --32, -60, -50, -59, -87, -81, -66, -59, 53, 93, 92, -146, -174, 11, 59, 133, 237, -58, 107, 41, -36, -22, 26, -14, -13, -12, 6, -5, -1, 1, -5, -14, 1, 23, 50, 48, 49, 48, 61, 60, 50, 47, 24, -18, -23, -35, -7, -22, 13, 53, -141, 150, 81, 106, 67, 50, 38, 11, 11, 6, 0, -17, -2, 1, 2, -4, -7, -4, 9, 9, 7, -20, -40, -45, -38, --31, -20, 0, 18, 34, 29, 19, 8, -28, -52, -68, -71, -49, -13, 54, -86, -96, -79, -58, -40, -27, -17, -14, -10, -13, --15, -8, 6, 23, 18, 6, -18, -40, -50, -47, -33, -12, 11, 45, 71, 89, 112, 122, 123, 99, 65, 20, -7, -29, -54, --74, 53, 59, 64, 58, 60, 57, 48, 42, 52, 62, 73, 68, 59, 55, 27, 7, -15, -13, -14, -17, -19, -23, -28, -25, --22, -21, 0, 19, 40, 48, 58, 67, 62, 57, 54, 54, 40, 44, 34, 35, 29, 26, 26, 24, 16, 4, -7, -15, -22, --28, -30, -29, -30, -34, -40, -41, -38, -35, -32, -31, -31, -32, -25, -19, -13, -7, -1, 8, 13, 21, 28, 35, -4, 2, --4, -5, -8, -1, -5, -8, -13, -16, -19, -23, -26, -31, -26, -26, -33, -31, -31, -31, -32, -33, -33, -33, -33, -34, -30, --28, -25, -20, -16, -13, -11, -10, -8, -6, -32, 6, 9, 10, 7, 6, 2, 5, 3, -9, -4, -6, -12, -5, -3, -5, -1, 3, 5, 5, 6, 6, 7, 9, 13, 14, 14, 8, 10, 11, 18, 5, 3, 2, 11, 14, 15, 10, 5, 8, 0, --6, -19, -4, -8, -34, -14, -10, -21, -6, -8, -21, -3, 3, 5, 11, 15, 20, 24, 31, 39, 43, 36, 14, 14, 16, -37, 8, 1, -1, 25, 33, 28, 14, 18, 27, 6, -1, -22, 1, -9, -76, -53, -69, -94, -56, -39, -59, -10, -11, -11, -2, 6, 15, 20, 31, 49, 60, 54, 22, 33, 33, 69, 1, -8, -6, 46, 58, 50, 31, -12, 2, -27, -41, -73, -30, --54, -120, -91, -91, -53, -45, -41, -63, -3, 1, 0, 35, 48, 64, 76, 98, 124, 134, 102, 30, 24, 43, 112, 18, -11, --3, 74, 99, 71, 21, 180, 134, 126, 113, 86, 113, 120, 108, 72, 28, 21, 10, 6, 27, 1, -32, -121, -132, -151, -159, --161, -163, -177, -119, -54, 28, 78, 52, -31, -28, -22, -11, 6, 27, 34, 143, -65, -47, -18, 21, 69, -87, -140, -83, -33, --10, -11, -2, -9, -32, -2, 22, 26, 17, 35, 82, 101, 118, 106, 91, 16, -83, -161, -153, -45, 72, 86, 38, -88, -155, --115, -90, -132, -24, -114, -121, -135, 5, 15, -33, 17, 5, 6, 1, 7, 6, -18, -40, -46, -33, -35, -62, -54, -61, -79, --70, -51, -40, 86, 105, 48, -150, -152, 44, 76, 139, 249, -50, 128, 127, -80, -109, -48, -28, -15, -2, 1, -7, -3, -2, --2, -9, 0, 18, 48, 50, 53, 56, 65, 56, 38, 31, 15, -16, -26, -37, -7, -18, 30, 102, 153, 126, 19, 84, 64, -55, 63, 49, 38, 10, -3, -15, 2, 5, 6, 3, -2, -1, 10, 15, 22, -1, -20, -29, -24, -18, -7, 4, 14, 25, -13, 0, -14, -48, -69, -82, -75, -38, 1, 63, -65, -84, -77, -64, -47, -33, -21, -18, -12, -14, -16, -15, -3, 15, 18, -9, -12, -36, -47, -45, -35, -19, 4, 38, 64, 80, 97, 102, 98, 75, 40, -9, -35, -53, -63, -66, 20, 28, 37, 34, -37, 34, 26, 19, 34, 48, 63, 62, 60, 61, 34, 14, -4, -5, -9, -16, -15, -17, -21, -18, -15, -13, 5, 21, 40, -45, 52, 58, 50, 40, 28, 25, 53, 58, 50, 47, 42, 39, 40, 38, 31, 21, 11, 4, -3, -8, -14, -14, -18, -24, --33, -34, -32, -30, -27, -27, -26, -27, -19, -12, -4, 3, 10, 20, 25, 32, 39, 47, 3, 7, 3, 2, -1, 5, 1, --2, -7, -9, -12, -14, -18, -21, -16, -16, -27, -24, -25, -24, -25, -26, -27, -27, -27, -28, -24, -21, -18, -13, -9, -6, --4, -2, 0, 1, -23, 4, 6, 8, 5, 4, 1, 4, 2, -11, -3, -5, -13, -6, -3, -6, -1, 0, 4, 3, 4, -4, 5, 7, 10, 11, 11, 6, 7, 7, 15, 2, 0, -1, 9, 11, 11, 7, 2, 6, -2, -9, -20, -3, -6, -34, --9, -6, -21, -5, -8, -20, -8, -4, 3, 7, 13, 19, 22, 28, 34, 35, 27, 8, 6, 10, 36, 4, -3, -4, 21, -28, 20, 9, 14, 26, 4, -3, -24, 3, -6, -80, -46, -60, -98, -53, -39, -57, -18, -20, -10, -4, 4, 16, 19, 30, -45, 52, 46, 16, 23, 24, 67, -5, -13, -10, 41, 53, 39, 26, -16, 0, -29, -44, -81, -24, -41, -110, -67, -65, -38, --29, -31, -59, -15, -17, -10, 25, 42, 66, 76, 95, 114, 115, 78, 12, 2, 31, 111, 12, -19, -9, 67, 87, 49, 9, -182, 142, 128, 116, 100, 111, 103, 77, 59, 25, 20, 11, 12, 16, 18, -6, -112, -126, -147, -154, -162, -164, -163, -105, -30, -72, 81, 36, -45, -40, -23, 7, 2, 30, 67, 153, -60, -44, -39, -2, 63, -65, -107, -60, -20, -12, -9, -6, -4, -23, --7, 14, 21, 7, 23, 66, 95, 113, 98, 61, -15, -98, -169, -140, -11, 77, 75, 35, -99, -158, -106, -86, -104, 34, -70, --92, -142, 13, 23, -15, 19, 3, 7, 3, 4, 9, -9, -29, -40, -28, -31, -55, -54, -62, -70, -60, -36, -16, 112, 108, -4, -149, -129, 72, 91, 143, 239, -33, 108, 195, -105, -184, -121, -37, -11, -9, -2, -7, -3, -4, -2, -5, -2, 11, 42, -49, 55, 61, 63, 49, 25, 12, 1, -18, -32, -40, -14, -11, 49, 149, 134, 66, -55, 30, 60, 65, 94, 90, 61, 14, --6, -10, 5, 6, 7, 6, 3, 1, 11, 20, 34, 19, 1, -11, -10, -6, 4, 8, 11, 16, -4, -20, -34, -65, -84, --92, -75, -26, 13, 64, -43, -67, -69, -65, -51, -38, -25, -21, -13, -13, -15, -17, -10, 5, 14, 10, -6, -30, -42, -41, --36, -25, -5, 27, 51, 65, 76, 76, 68, 52, 20, -29, -53, -68, -64, -54, -12, -3, 10, 11, 16, 14, 9, 2, 19, -33, 50, 51, 56, 61, 38, 20, 6, 2, -4, -15, -11, -11, -12, -9, -4, 0, 14, 26, 40, 40, 41, 44, 32, 17, --2, -6, 59, 62, 58, 52, 49, 45, 46, 46, 41, 33, 27, 22, 16, 12, 4, 1, -5, -13, -24, -26, -23, -22, -20, --20, -20, -21, -12, -5, 4, 11, 20, 30, 33, 39, 45, 53, 8, 11, 8, 8, 6, 10, 7, 4, 1, -1, -3, -5, --7, -8, -5, -6, -17, -15, -16, -16, -17, -17, -18, -18, -18, -19, -15, -12, -9, -5, -2, 1, 3, 5, 7, 7, -14, -5, 7, 10, 4, 2, -3, 4, 1, -13, -5, -7, -15, -8, -6, -8, -4, -2, 1, 1, 2, 6, 6, 8, 11, 11, -10, 6, 7, 7, 17, 3, 1, 0, 10, 12, 10, 8, 3, 8, -5, -7, -20, -2, -2, -30, -4, -1, -21, -4, -7, --17, -11, -8, 3, 4, 9, 18, 22, 28, 33, 30, 22, 6, 3, 8, 37, 5, -2, -2, 23, 28, 17, 9, 16, 28, -3, -3, -25, 5, -4, -77, -40, -50, -95, -48, -39, -50, -27, -27, -7, -8, 2, 17, 20, 30, 45, 46, 39, 15, 19, -19, 68, -5, -11, -6, 43, 53, 35, 26, -12, 2, -28, -43, -80, -18, -29, -92, -44, -40, -21, -15, -20, -50, -24, -31, --15, 14, 33, 63, 73, 91, 107, 96, 56, -2, -14, 23, 110, 11, -19, -3, 70, 83, 35, 5, 185, 146, 123, 113, 106, -104, 82, 47, 43, 14, 16, 7, 13, 8, 28, 17, -94, -113, -135, -140, -153, -154, -136, -80, 3, 120, 99, 38, -47, -39, --16, 26, 3, 38, 106, 167, -44, -34, -50, -17, 53, -47, -76, -33, -11, -10, -6, -6, -3, -13, -10, 5, 16, -2, 9, -49, 85, 105, 92, 39, -35, -104, -167, -118, 28, 83, 67, 38, -100, -151, -91, -75, -53, 88, -32, -66, -128, 15, 21, 0, -12, 3, 5, 3, 2, 7, -1, -17, -32, -18, -19, -38, -43, -55, -54, -45, -12, 26, 141, 114, -26, -131, -93, 104, 118, -159, 229, 2, 69, 223, -114, -230, -179, -41, -7, -9, -2, -5, -3, -4, -3, -3, -3, 4, 33, 49, 55, 64, 62, 43, -17, -1, -9, -16, -29, -32, -15, 13, 80, 193, 102, -2, -113, -28, 70, 94, 130, 135, 81, 19, -5, -4, 6, 5, 6, -6, 5, 2, 11, 22, 42, 37, 21, 10, 8, 9, 18, 17, 16, 17, -9, -26, -38, -68, -87, -89, -62, -6, 32, 68, --16, -41, -56, -60, -52, -40, -26, -21, -11, -11, -13, -16, -13, -2, 10, 11, 0, -24, -36, -34, -32, -26, -11, 18, 38, -50, 56, 54, 45, 36, 12, -32, -53, -65, -52, -33, -32, -26, -13, -6, 0, 0, -4, -9, 7, 21, 36, 40, 47, 54, -38, 25, 16, 9, 0, -11, -3, 0, 2, 7, 13, 20, 29, 38, 46, 40, 35, 32, 18, 1, -23, -27, 60, 63, 58, -53, 50, 47, 49, 50, 48, 44, 40, 38, 35, 34, 21, 17, 10, 1, -13, -12, -9, -9, -8, -8, -8, -9, 0, 7, -15, 23, 31, 40, 41, 45, 49, 56, 17, 19, 14, 13, 9, 17, 11, 6, 5, 4, 3, 2, 1, 1, 5, 7, -10, --5, -5, 0, -2, -2, -2, -2, -2, -3, 0, 3, 5, 8, 10, 13, 14, 16, 17, 17, 3, 3, 6, 8, 6, 5, -1, 5, 4, -8, 0, -2, -9, -3, -2, -3, -2, -2, 5, 4, 4, 4, 5, 7, 10, 9, 8, 5, 5, 6, 15, -2, 0, 0, 9, 11, 8, 7, 3, 8, 0, -6, -15, 1, 1, -26, -1, 1, -20, -6, -8, -13, -13, -10, 5, 2, -10, 15, 19, 24, 29, 22, 13, 1, -2, 5, 35, 3, -4, -1, 22, 26, 13, 7, 16, 28, 6, -2, -22, 7, -1, --67, -31, -40, -80, -40, -37, -40, -32, -33, -1, -9, 2, 15, 17, 27, 42, 36, 29, 11, 13, 14, 64, -7, -11, -3, -42, 51, 29, 26, -10, 4, -22, -40, -74, -11, -18, -68, -26, -19, -11, -8, -10, -36, -28, -40, -16, 4, 25, 55, 63, -81, 94, 70, 29, -17, -27, 16, 104, 8, -20, 2, 70, 76, 21, 1, 179, 139, 118, 108, 106, 92, 59, 25, 26, 5, -11, 3, 11, 3, 31, 32, -69, -96, -116, -122, -140, -138, -106, -52, 36, 157, 112, 38, -48, -38, -13, 34, -2, 42, 137, -177, -33, -17, -46, -23, 40, -31, -47, -12, -8, -5, -4, -4, -3, -6, -11, -2, 14, -8, -1, 30, 69, 91, 80, 19, --52, -113, -159, -91, 64, 83, 54, 33, -106, -147, -82, -67, -11, 132, 14, -36, -94, 10, 17, 4, 5, 3, 3, 3, 2, -4, 4, -5, -20, -5, -3, -17, -34, -49, -42, -37, 4, 62, 152, 105, -55, -108, -55, 125, 134, 163, 190, 23, -13, 188, --105, -244, -206, -41, -4, -6, -2, -3, -2, -3, -3, -2, -4, -1, 24, 47, 57, 65, 55, 34, 7, -16, -25, -25, -34, --30, -22, 41, 107, 208, 47, -82, -169, -101, 70, 125, 174, 178, 92, 28, -3, 1, 5, 3, 5, 5, 5, 3, 10, 24, -47, 55, 45, 32, 24, 22, 26, 24, 18, 15, -16, -34, -45, -69, -86, -83, -49, 5, 35, 55, 2, -17, -34, -45, -43, --33, -22, -18, -7, -7, -10, -13, -12, -6, 7, 12, 7, -14, -25, -26, -27, -25, -16, 6, 21, 30, 33, 33, 27, 25, -9, -28, -43, -52, -36, -15, -44, -39, -25, -17, -9, -9, -10, -13, 2, 12, 26, 28, 37, 44, 37, 30, 26, 18, 9, --3, 6, 12, 16, 23, 31, 40, 44, 47, 49, 37, 26, 18, 4, -11, -35, -38, 55, 57, 58, 51, 51, 48, 50, 51, -52, 52, 53, 53, 52, 53, 40, 34, 27, 18, 5, 6, 8, 7, 8, 8, 8, 7, 14, 19, 25, 32, 40, 46, 45, -47, 48, 53, 25, 25, 25, 24, 20, 26, 22, 17, 17, 17, 17, 17, 17, 19, 22, 24, 8, 13, 13, 15, 14, 14, -14, 14, 15, 14, 16, 18, 19, 21, 22, 24, 24, 26, 27, 26, 19, -3, 0, 2, 0, -1, -1, -2, -1, -9, -2, --2, -8, -4, -4, -3, -8, -9, 4, -1, -2, -3, -1, 0, 4, 1, 0, -1, -2, -1, 8, -5, -6, -6, 2, 4, -1, 1, -3, 2, -4, -10, -18, -3, -3, -25, -4, -4, -25, -16, -16, -12, -19, -17, 1, -4, 4, 6, 10, 14, 19, -7, -2, -9, -11, -3, 25, -6, -11, -8, 13, 16, 2, 0, 10, 22, 1, -7, -24, 4, -3, -56, -27, -32, -63, -36, --37, -32, -38, -41, 0, -13, -3, 6, 9, 18, 33, 18, 12, 1, 3, 4, 51, -16, -19, -9, 32, 40, 17, 18, -12, -0, -21, -39, -66, -8, -11, -45, -11, -7, -2, -2, -4, -21, -28, -44, -15, -5, 14, 39, 49, 63, 73, 36, -6, -37, --39, 6, 85, -2, -28, -4, 57, 57, 0, -9, 163, 119, 100, 93, 91, 71, 35, 11, 10, 2, 5, 1, 7, 0, 27, -38, -43, -79, -101, -107, -129, -126, -84, -30, 59, 171, 108, 25, -55, -50, -24, 25, -15, 35, 149, 171, -31, -8, -46, -30, -22, -20, -23, -3, -5, -2, -2, -2, -2, -3, -10, -8, 10, -14, -14, 6, 45, 68, 60, -5, -76, -137, -166, -83, 76, -60, 20, 7, -127, -157, -88, -72, 20, 149, 44, -14, -68, 4, 11, 2, 3, 1, 1, 2, 1, 2, 4, 2, -12, 5, -9, 0, -26, -46, -38, -35, 12, 90, 141, 73, -98, -100, -32, 124, 141, 158, 142, 32, -94, 91, -109, -229, -207, -41, -3, --2, -2, -2, -2, -2, -2, -1, -5, -5, 9, 37, 50, 56, 41, 19, -9, -36, -50, -47, -52, -39, -38, 59, 116, 178, --21, -151, -196, -158, 64, 150, 200, 199, 87, 33, -1, 3, 3, 2, 3, 3, 4, 2, 6, 20, 42, 63, 58, 44, 32, -25, 26, 23, 14, 4, -31, -50, -61, -83, -96, -87, -50, -4, 23, 26, 7, -6, -26, -36, -36, -29, -19, -13, -4, -4, --6, -7, -9, -7, 3, 8, 8, -10, -21, -25, -29, -30, -26, -11, -4, -1, 1, 0, -4, -1, -9, -36, -43, -47, -28, --9, -57, -56, -40, -34, -24, -22, -20, -18, -6, 1, 13, 12, 24, 28, 30, 26, 28, 19, 10, -2, 7, 14, 20, 28, -37, 47, 44, 41, 36, 20, 5, -8, -18, -30, -49, -52, 34, 34, 46, 35, 40, 39, 40, 42, 44, 47, 52, 53, 55, -58, 48, 41, 33, 26, 18, 14, 16, 15, 15, 15, 14, 14, 16, 19, 23, 28, 33, 35, 33, 32, 31, 34, 22, 19, -23, 25, 27, 23, 24, 24, 26, 27, 26, 28, 29, 31, 28, 27, 22, 22, 21, 20, 20, 21, 21, 21, 21, 21, 22, -23, 23, 23, 22, 23, 23, 24, 25, 23, 24, -5, 0, 2, -2, -4, -7, -3, -3, -12, -6, -6, -10, -8, -9, -6, --11, -10, -1, -5, -5, -4, -3, -2, 2, -2, -3, -3, -3, -3, 6, -6, -7, -6, 2, 4, -1, 0, -2, 2, -6, --9, -17, -5, -3, -21, -3, -6, -26, -22, -21, -9, -23, -21, 1, -7, -2, 1, 6, 8, 12, -4, -12, -13, -13, -4, -20, -7, -11, -4, 13, 15, -1, 0, 12, 22, 2, -7, -23, 1, -3, -42, -21, -22, -45, -30, -35, -22, -41, -45, 1, --16, -7, -2, 5, 12, 27, 4, -2, -4, 0, 2, 40, -16, -16, 0, 34, 40, 14, 20, -6, 3, -16, -33, -54, -5, --6, -23, -1, -1, 7, 3, -1, -8, -23, -43, -14, -12, 3, 23, 35, 47, 54, 2, -37, -49, -41, 4, 67, -6, -23, -10, 60, 54, -9, -8, 162, 108, 92, 80, 74, 50, 17, 3, 5, 0, -1, -2, 4, 0, 19, 35, -18, -60, -87, -92, --112, -105, -54, 5, 91, 185, 111, 22, -50, -43, -16, 36, -5, 49, 173, 180, -2, 14, -37, -26, 11, -10, -9, -1, -2, -0, 1, 0, -1, -1, -7, -11, 6, -16, -23, -10, 31, 55, 52, -10, -79, -139, -148, -55, 100, 59, 11, 0, -126, -143, --69, -46, 64, 175, 81, 10, -47, 3, 6, 0, 1, 0, 0, 0, 1, 1, 4, 6, -5, 12, 20, 17, -11, -31, -21, --17, 40, 133, 143, 59, -111, -70, 8, 130, 155, 157, 94, 47, -157, -28, -99, -181, -180, -34, 0, -1, -1, 0, 0, -1, --1, -1, -3, -6, -3, 26, 42, 47, 32, 12, -13, -37, -54, -50, -49, -26, -30, 95, 133, 135, -77, -196, -208, -181, 55, -178, 224, 207, 79, 36, 0, 3, 1, 0, 1, 1, 2, 2, 2, 14, 35, 64, 66, 56, 46, 37, 35, 30, 20, 9, --27, -47, -57, -77, -89, -75, -47, -17, 3, -6, 16, 10, -13, -20, -26, -19, -12, -5, 0, 0, -1, -3, -4, -6, 0, -6, 10, -3, -16, -20, -23, -26, -25, -18, -16, -18, -14, -12, -14, -9, -12, -33, -32, -32, -14, 4, -59, -61, -51, -45, --38, -34, -29, -24, -14, -8, 1, 1, 9, 13, 19, 20, 25, 19, 12, 4, 14, 20, 26, 36, 46, 57, 49, 40, 31, -13, -4, -18, -25, -35, -51, -55, 16, 14, 24, 21, 26, 27, 29, 32, 35, 39, 46, 49, 54, 59, 51, 45, 39, 33, -24, 24, 26, 24, 24, 23, 21, 22, 22, 23, 24, 27, 29, 27, 24, 21, 18, 17, 23, 20, 22, 22, 22, 23, 23, -22, 24, 26, 27, 29, 29, 32, 31, 32, 24, 27, 27, 30, 29, 30, 30, 30, 31, 31, 31, 30, 29, 28, 27, 27, -26, 26, 26, 24, 33, -8, -3, -2, -4, -5, -7, -6, -5, -10, -5, -5, -8, -8, -9, -5, -13, -13, -1, -6, -7, --8, -6, -5, -2, -7, -7, -6, -5, -5, 1, -8, -9, -7, -1, 1, -4, -2, -3, 0, -5, -10, -16, -6, -5, -16, --5, -9, -25, -28, -26, -7, -26, -23, 0, -10, -5, -6, -1, 1, 3, -16, -23, -18, -14, -5, 12, -9, -11, -3, 10, -10, -7, -3, 10, 18, 1, -9, -21, -2, -4, -27, -15, -14, -28, -24, -31, -14, -41, -46, 1, -18, -11, -10, -2, 4, -17, -12, -16, -7, 1, 4, 28, -16, -13, 6, 31, 35, 7, 17, -5, 3, -11, -28, -41, -4, -3, -7, 3, 3, 7, -8, 3, 0, -13, -38, -12, -18, -7, 6, 19, 28, 30, -34, -68, -58, -36, 7, 46, -8, -17, 20, 55, 43, -21, -11, -141, 85, 80, 63, 52, 31, 5, 1, 1, -2, -3, -4, 0, -1, 9, 27, 1, -40, -72, -77, -96, -84, -24, 44, 127, -200, 120, 31, -29, -30, -10, 38, -2, 51, 174, 169, -2, 26, -21, -18, 5, -2, -5, 0, -1, 1, 1, 1, 0, 0, --4, -10, 3, -12, -24, -21, 18, 40, 38, -20, -88, -143, -128, -27, 119, 57, -2, -21, -134, -141, -71, -44, 72, 172, 110, -22, -35, 7, 3, 0, 0, -1, -1, -1, 0, 0, 2, 6, 1, 14, 27, 28, -2, -22, -13, -4, 56, 154, 123, 26, --131, -50, 38, 121, 158, 143, 34, 37, -198, -175, -107, -127, -138, -20, 1, -1, 1, 1, 1, 1, 0, 0, -1, -4, -10, -12, 32, 32, 15, -2, -25, -46, -66, -65, -60, -26, -24, 118, 131, 66, -120, -206, -191, -174, 41, 181, 219, 184, 64, 33, --3, 1, -1, -1, -1, -1, 0, 1, -1, 8, 26, 61, 73, 64, 55, 43, 34, 25, 14, 2, -32, -52, -61, -75, -79, --60, -42, -30, -19, -36, 25, 22, 0, -4, -13, -7, -4, 1, 3, 3, 2, 1, 0, -2, 0, 5, 13, 5, -6, -12, --17, -23, -28, -30, -34, -38, -32, -26, -26, -20, -19, -29, -20, -13, 5, 19, -53, -59, -53, -50, -45, -40, -32, -25, -17, --13, -6, -7, 0, 2, 10, 13, 21, 18, 15, 11, 17, 21, 25, 34, 43, 52, 40, 28, 15, 1, -13, -25, -28, -34, --44, -49, 2, -2, 8, 8, 14, 16, 18, 22, 24, 29, 36, 41, 47, 53, 50, 46, 43, 39, 32, 34, 35, 34, 34, -33, 32, 33, 30, 30, 30, 29, 28, 24, 19, 13, 9, 6, 25, 21, 24, 24, 24, 26, 26, 27, 30, 32, 33, 35, -36, 39, 37, 38, 32, 35, 36, 38, 38, 38, 39, 39, 40, 40, 39, 38, 36, 34, 32, 31, 30, 30, 29, 26, 42, --11, -6, -5, -7, -8, -9, -9, -8, -10, -7, -7, -8, -11, -12, -6, -16, -16, -4, -9, -10, -12, -9, -9, -7, -12, --12, -9, -8, -7, -4, -10, -10, -7, -3, -3, -8, -5, -5, -3, -7, -12, -17, -10, -8, -12, -7, -11, -25, -33, -32, --8, -28, -26, -3, -14, -10, -12, -7, -7, -7, -28, -33, -23, -14, -5, 3, -12, -12, -1, 7, 5, -13, -6, 8, 14, --1, -11, -21, -6, -5, -14, -9, -7, -13, -15, -25, -7, -38, -45, -1, -21, -16, -18, -8, -5, 5, -29, -30, -12, 3, -6, 13, -15, -10, 14, 30, 30, -2, 14, -3, 2, -11, -24, -31, -3, -1, 0, 3, 3, 5, 7, 5, 4, -4, -29, --11, -21, -16, -9, 5, 9, 3, -69, -96, -65, -27, 11, 22, -11, -10, 32, 51, 32, -34, -13, 126, 65, 63, 43, 31, -13, -1, 0, -1, -1, -2, -3, -2, -1, 3, 16, 14, -23, -58, -66, -82, -66, -2, 75, 150, 197, 119, 34, -12, -20, --1, 49, 17, 66, 178, 158, 21, 35, -14, -9, 4, -2, -3, 1, 0, 1, 1, 2, 1, 1, -1, -8, -1, -7, -20, --26, 10, 29, 24, -32, -98, -145, -110, -9, 120, 49, -14, -40, -128, -119, -45, -16, 104, 178, 126, 28, -30, 12, -2, 0, --1, -1, -1, -1, -1, 0, 1, 3, 3, 12, 26, 33, 6, -9, -3, 14, 75, 165, 98, -6, -144, -28, 70, 125, 172, -138, -5, 44, -196, -283, -109, -72, -91, -4, 0, 1, 1, 1, 1, 1, 1, 0, 0, -1, -11, 0, 16, 14, -3, -15, --35, -53, -72, -68, -60, -13, 1, 142, 127, 0, -134, -183, -160, -133, 26, 173, 196, 148, 53, 23, -6, 0, -3, -2, -2, --1, -1, 0, -1, 2, 16, 50, 70, 66, 58, 46, 36, 25, 15, 3, -26, -46, -57, -70, -68, -43, -39, -43, -39, -57, -37, 38, 15, 11, 0, 4, 2, 5, 5, 4, 3, 3, 2, 1, 0, 4, 14, 11, 2, -7, -12, -20, -27, -33, -42, --50, -40, -35, -34, -29, -27, -28, -12, 4, 24, 37, -43, -50, -48, -46, -44, -38, -29, -21, -16, -12, -8, -10, -6, -5, -1, 6, 14, 15, 15, 17, 21, 23, 26, 33, 40, 47, 34, 20, 7, -4, -14, -24, -25, -30, -37, -41, -11, -17, -7, --6, 1, 4, 5, 8, 10, 15, 22, 27, 33, 40, 42, 42, 42, 41, 38, 40, 41, 41, 40, 40, 39, 41, 36, 35, -32, 30, 26, 20, 13, 6, 1, -4, 24, 19, 24, 25, 26, 25, 28, 30, 34, 36, 37, 40, 41, 43, 40, 40, 39, -40, 41, 42, 42, 43, 44, 44, 45, 45, 43, 41, 38, 36, 34, 32, 31, 30, 28, 26, 45, -14, -7, -7, -10, -11, --12, -12, -11, -10, -9, -9, -10, -14, -14, -7, -18, -19, -7, -13, -14, -15, -13, -12, -11, -17, -16, -13, -10, -9, -10, --13, -12, -8, -6, -5, -11, -7, -5, -5, -10, -13, -17, -13, -10, -8, -7, -12, -22, -35, -35, -10, -30, -27, -6, -17, --14, -18, -12, -14, -17, -38, -41, -27, -14, -6, -9, -16, -14, 0, 3, 1, -17, -7, 11, 12, -2, -11, -18, -9, -5, --3, -4, -2, -5, -6, -14, -2, -31, -42, -4, -22, -21, -26, -14, -14, -9, -43, -42, -17, 3, 5, -7, -18, -10, 20, -26, 25, -6, 15, 4, 3, -8, -18, -21, -2, 1, 1, 1, 2, 2, 5, 4, 3, 4, -17, -10, -23, -22, -23, -8, --10, -26, -99, -117, -70, -19, 11, -10, -21, -9, 39, 42, 20, -39, -9, 114, 56, 55, 31, 17, 4, -1, 0, -1, -1, --1, -2, -2, -2, 1, 6, 17, -11, -46, -58, -68, -47, 18, 104, 167, 182, 106, 30, -2, -11, 6, 55, 33, 80, 182, -149, 32, 46, 5, 4, 4, -2, 0, 1, 0, 1, 1, 1, 1, 1, 0, -4, -3, -3, -13, -26, 4, 15, 5, -49, --108, -143, -88, 9, 114, 47, -16, -49, -119, -102, -31, 3, 96, 173, 141, 26, -19, 11, -4, 1, -1, 0, -1, -1, -1, --1, 0, 2, 4, 6, 19, 31, 12, 5, 11, 41, 97, 166, 74, -29, -141, -1, 102, 125, 173, 118, -54, 23, -193, -370, --117, -37, -44, 4, -1, 2, 0, 1, 1, 1, 1, 1, 0, 1, -8, -10, 0, -4, -18, -26, -43, -57, -73, -66, -59, --2, 34, 151, 107, -68, -139, -150, -123, -94, 1, 126, 140, 95, 39, 7, -6, -1, -3, -2, -2, -2, -2, -1, -1, -1, -7, 37, 61, 64, 60, 51, 40, 24, 12, -1, -26, -46, -59, -67, -57, -30, -40, -60, -64, -75, 43, 47, 28, 21, 10, -10, 4, 5, 4, 4, 3, 4, 3, 3, 1, 3, 12, 16, 10, 2, -5, -14, -22, -32, -44, -56, -46, -41, -41, -38, --35, -27, -7, 14, 33, 47, -36, -42, -42, -40, -40, -33, -23, -15, -10, -8, -7, -9, -7, -8, -4, 0, 8, 11, 16, -21, 20, 20, 20, 25, 29, 33, 21, 8, -5, -11, -17, -25, -24, -27, -32, -37, -22, -30, -20, -19, -12, -9, -9, -6, --5, 0, 6, 11, 17, 24, 30, 32, 35, 38, 40, 41, 41, 41, 41, 41, 40, 42, 36, 33, 29, 24, 19, 12, 5, --2, -8, -14, 18, 14, 19, 21, 24, 20, 24, 28, 32, 34, 36, 38, 40, 42, 37, 35, 41, 39, 39, 38, 39, 40, -40, 41, 41, 42, 39, 37, 34, 31, 29, 27, 26, 24, 22, 20, 41, -15, -9, -9, -11, -12, -14, -14, -12, -9, -10, --11, -12, -17, -17, -9, -18, -19, -10, -15, -15, -17, -14, -14, -14, -19, -18, -14, -10, -10, -14, -14, -12, -7, -7, -7, --13, -9, -7, -7, -10, -14, -15, -15, -11, -3, -6, -10, -17, -31, -33, -11, -30, -27, -7, -18, -17, -22, -16, -20, -25, --44, -44, -28, -11, -6, -17, -16, -12, 4, 1, -4, -20, -9, 8, 7, -2, -11, -16, -10, -4, 2, -2, 1, 0, 2, --6, 2, -21, -34, -7, -22, -23, -31, -17, -20, -20, -51, -47, -18, 6, 7, -21, -15, -4, 30, 23, 18, -13, 11, 1, -0, -6, -15, -14, 0, 1, 0, 0, 0, 0, 1, 2, 1, 7, -7, -8, -22, -27, -33, -18, -26, -50, -116, -124, -68, --8, 12, -34, -22, 0, 53, 35, 7, -47, -12, 84, 40, 42, 20, 6, 0, 0, 0, 0, 0, 0, -1, -1, -2, -1, -0, 15, 0, -34, -50, -53, -28, 35, 126, 175, 162, 96, 34, 19, 8, 20, 59, 45, 84, 166, 119, 38, 42, 12, 11, -1, -1, 1, 0, 0, 0, 0, 0, 1, 1, 1, -2, -4, 1, -5, -19, 2, 5, -11, -59, -105, -120, -53, 34, 112, -48, -14, -57, -101, -75, -7, 21, 100, 159, 131, 19, -12, 6, -3, 1, -1, 0, 0, 0, -1, -1, 0, 0, 3, 2, -11, 28, 22, 23, 31, 71, 116, 154, 49, -47, -130, 15, 113, 111, 161, 97, -70, 19, -153, -389, -123, -14, -14, 3, 0, -1, 0, 1, 0, 1, 1, 1, 0, 1, -3, -14, -13, -19, -30, -35, -49, -61, -73, -64, -59, 3, 58, 136, 71, -118, --125, -102, -75, -43, -16, 65, 72, 46, 25, -6, -2, -2, -1, -1, -1, -1, -1, -1, -1, -2, 1, 26, 52, 62, 60, -51, 39, 19, 4, -8, -28, -48, -61, -65, -48, -20, -37, -63, -73, -73, 52, 57, 36, 26, 16, 9, 4, 4, 3, 2, -1, 2, 3, 3, 2, 3, 10, 19, 17, 10, 1, -10, -21, -31, -43, -59, -49, -45, -47, -43, -39, -23, -4, 20, 40, -55, -28, -33, -33, -31, -32, -24, -15, -7, -5, -3, -3, -4, -6, -7, -8, -6, 0, 3, 9, 16, 12, 12, 10, 11, -13, 14, 5, -4, -12, -15, -18, -23, -21, -23, -27, -30, -26, -34, -29, -26, -21, -18, -18, -16, -14, -10, -5, -1, 5, -10, 18, 22, 27, 31, 37, 38, 37, 37, 37, 37, 36, 37, 31, 28, 24, 18, 12, 6, -1, -7, -12, -18, 12, 8, -13, 15, 18, 13, 17, 21, 24, 26, 28, 30, 32, 34, 30, 28, 36, 33, 33, 32, 33, 33, 33, 34, 34, 34, 32, -29, 26, 24, 22, 20, 19, 17, 15, 13, 33, -15, -9, -11, -12, -14, -15, -15, -13, -8, -11, -12, -12, -18, -18, -10, --18, -18, -12, -16, -16, -17, -15, -15, -16, -19, -18, -14, -10, -10, -16, -14, -12, -6, -8, -9, -14, -10, -7, -10, -12, --14, -14, -16, -11, 1, -5, -8, -12, -25, -27, -11, -29, -26, -9, -17, -18, -22, -18, -23, -30, -44, -42, -27, -9, -5, --23, -16, -10, 7, -1, -7, -22, -10, 6, 1, -5, -12, -15, -11, -2, 3, 0, 2, 2, 5, 1, 4, -10, -24, -10, --21, -23, -31, -19, -23, -28, -52, -45, -17, 8, 8, -32, -13, -1, 36, 18, 12, -16, 7, 1, -6, -9, -12, -9, 2, -1, -1, 0, 0, -1, -1, 0, -1, 6, 1, -6, -19, -28, -37, -24, -37, -68, -120, -118, -61, 1, 10, -55, -25, 5, -60, 27, -3, -49, -13, 66, 34, 32, 12, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, -2, -1, 8, 7, -23, -39, --35, -7, 51, 140, 176, 143, 87, 40, 36, 26, 31, 55, 54, 89, 156, 97, 47, 41, 18, 12, -2, 0, 0, 0, 0, -0, 0, 0, 0, 0, 1, 1, -4, 1, 3, -10, -1, -7, -29, -73, -104, -102, -30, 41, 87, 38, -15, -57, -80, -50, -14, 41, 82, 146, 120, 13, -6, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 0, 5, 22, 26, 34, 42, -87, 115, 120, 15, -66, -118, 22, 110, 95, 133, 63, -92, 2, -125, -366, -117, -3, -1, 1, 1, 0, 0, 0, 0, 0, -0, 0, 1, 0, 1, -13, -22, -32, -41, -44, -56, -64, -72, -60, -53, 11, 84, 112, 35, -139, -100, -58, -40, -13, -26, --7, 5, 8, 11, -7, 0, -1, 0, 0, 0, 0, 0, -1, -1, -1, -3, 16, 41, 54, 52, 46, 35, 15, 0, -12, --24, -42, -53, -53, -34, -10, -28, -54, -70, -55, 53, 60, 42, 27, 16, 5, 4, 1, 0, 0, 0, 1, 1, 2, 3, -2, 6, 18, 21, 17, 7, -4, -15, -23, -35, -52, -46, -44, -46, -43, -38, -19, -3, 22, 39, 55, -20, -23, -25, -23, --23, -15, -8, -1, 0, 1, 1, 0, -1, -3, -7, -8, -5, -3, 3, 10, 6, 4, 1, 0, 0, -2, -6, -11, -15, --15, -15, -18, -16, -18, -20, -22, -25, -32, -30, -27, -24, -22, -22, -20, -18, -14, -11, -8, -5, -1, 7, 13, 18, 24, -33, 34, 33, 32, 31, 30, 29, 29, 24, 21, 17, 12, 6, 1, -5, -9, -13, -19, 6, 3, 7, 8, 11, 6, 9, -12, 15, 17, 19, 21, 23, 25, 22, 20, 28, 26, 25, 24, 25, 24, 24, 24, 24, 25, 22, 20, 18, 16, 14, 13, -12, 10, 8, 7, 23, -14, -9, -10, -11, -13, -14, -13, -12, -6, -10, -12, -12, -18, -18, -11, -16, -15, -12, -14, -14, --15, -14, -14, -16, -18, -17, -13, -9, -10, -17, -13, -10, -4, -7, -8, -13, -9, -6, -10, -11, -12, -12, -15, -10, 4, --3, -4, -6, -14, -17, -8, -24, -24, -9, -14, -16, -21, -18, -24, -33, -41, -38, -24, -7, -6, -27, -15, -8, 9, -1, --7, -19, -8, 6, -3, -5, -9, -12, -6, 0, 1, 0, 2, 2, 5, 3, 3, 0, -11, -10, -17, -20, -29, -19, -25, --34, -48, -41, -16, 7, 5, -40, -13, 1, 39, 14, 8, -14, 7, 4, -7, -8, -9, -3, 3, 0, -1, 0, -1, -1, --2, -1, -2, 2, 4, -2, -14, -25, -37, -29, -46, -79, -113, -104, -53, 4, 4, -67, -27, 8, 63, 22, -7, -40, -7, -42, 28, 25, 8, 0, -1, 0, 0, 0, 0, 1, 1, 0, 1, -1, -2, 2, 8, -11, -27, -19, 9, 57, 136, 157, -110, 66, 34, 36, 34, 35, 42, 51, 80, 131, 69, 38, 30, 20, 7, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 1, -3, 0, 7, -5, -9, -23, -49, -87, -103, -83, -13, 42, 65, 30, -12, -53, -59, -30, 25, 44, 68, 119, 92, -5, -5, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, -2, 16, 30, 45, 57, 103, 116, 93, -1, -63, --88, 33, 103, 80, 105, 38, -85, -2, -95, -306, -106, 5, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, --7, -26, -38, -43, -45, -54, -57, -60, -47, -34, 26, 103, 84, 3, -134, -70, -20, -4, 1, -18, -65, -42, -13, 3, -4, -1, 0, 1, 0, 1, 0, 0, 0, -1, 0, -4, 8, 31, 47, 46, 41, 33, 14, 0, -13, -21, -37, -45, -44, -25, --5, -16, -33, -46, -20, 49, 58, 44, 26, 11, 1, 2, -1, -1, -1, -1, -1, 0, 0, 1, 2, 3, 17, 24, 23, -14, 3, -9, -15, -26, -44, -41, -41, -44, -40, -34, -14, -3, 19, 33, 48, -12, -14, -16, -13, -12, -6, -1, 4, 2, -3, 2, 2, 0, 0, -3, -7, -6, -6, -3, 4, -2, -4, -7, -9, -11, -14, -15, -16, -16, -14, -13, -14, -12, -13, --14, -14, -22, -27, -28, -24, -24, -22, -21, -18, -15, -12, -10, -8, -7, -5, -1, 4, 10, 17, 27, 28, 26, 25, 23, -22, 21, 20, 16, 13, 10, 6, 1, -3, -7, -10, -12, -17, 0, -1, 1, 2, 4, 0, 2, 3, 5, 6, 8, 10, -12, 14, 13, 12, 20, 17, 17, 15, 16, 15, 15, 15, 14, 14, 12, 10, 9, 8, 7, 6, 5, 4, 2, 1, 13, --14, -9, -12, -11, -12, -12, -12, -11, -4, -9, -10, -11, -16, -17, -12, -15, -14, -12, -13, -13, -14, -14, -14, -17, -17, --16, -13, -10, -10, -18, -13, -10, -4, -9, -10, -13, -9, -8, -12, -10, -11, -11, -14, -7, 3, -1, -2, -3, -8, -9, --5, -17, -20, -11, -11, -14, -19, -19, -24, -33, -36, -32, -22, -7, -8, -29, -16, -9, 7, -5, -10, -18, -9, 2, -8, --5, -9, -9, -2, 1, 0, 0, 1, 1, 3, 3, 3, 3, -2, -7, -13, -16, -25, -19, -26, -36, -42, -34, -16, 3, --1, -45, -15, -2, 34, 6, 1, -14, 2, -1, -13, -7, -6, 1, 2, 0, 0, 0, 0, -1, -1, -1, -1, -1, 2, -1, -8, -20, -33, -31, -50, -81, -97, -84, -44, 4, -4, -74, -32, 3, 54, 11, -14, -35, -9, 21, 19, 17, 3, -1, -0, 0, 0, 0, 0, 0, 1, 1, 1, 0, -1, -1, 6, -3, -16, -5, 20, 58, 119, 127, 75, 41, 22, 32, 38, -35, 25, 44, 67, 103, 41, 37, 21, 16, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -2, 5, --3, -15, -34, -58, -88, -88, -56, 8, 48, 50, 25, -9, -45, -37, -8, 39, 50, 53, 96, 66, -4, -1, 1, 0, 0, -0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -3, 13, 32, 53, 68, 106, 104, 62, -16, -61, -63, 35, 87, 66, 72, -11, -80, -7, -79, -230, -81, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, -23, -38, -40, -43, --50, -50, -49, -38, -18, 34, 102, 48, -24, -112, -46, 3, 18, -5, -3, -101, -65, -16, 3, -1, 1, 0, 1, 1, 1, -1, 0, 0, -1, 0, -3, 2, 24, 40, 38, 33, 25, 9, -4, -17, -22, -34, -35, -35, -16, 1, 1, -6, -13, 17, -37, 49, 42, 20, 2, 0, 0, -2, -1, -1, -1, -1, -1, 0, 0, 2, 0, 13, 24, 25, 17, 9, -2, -7, -17, --34, -34, -35, -38, -34, -28, -11, -5, 11, 22, 32, -4, -4, -8, -4, -3, -1, 3, 4, 3, 3, 3, 2, 2, 1, -0, -3, -5, -8, -7, -3, -8, -9, -11, -14, -17, -20, -19, -18, -17, -14, -11, -10, -8, -8, -8, -6, -17, -21, -23, --20, -20, -18, -15, -12, -9, -9, -8, -7, -6, -5, -4, -2, 3, 9, 19, 20, 17, 16, 14, 13, 11, 10, 7, 5, -3, 0, -3, -5, -8, -10, -11, -14, -4, -4, -3, -3, -2, -5, -4, -4, -4, -2, -1, 1, 3, 4, 5, 4, 12, -9, 8, 7, 7, 7, 6, 6, 5, 5, 3, 2, 1, 1, 0, 0, -1, -2, -3, -3, 4, -12, -9, -11, -11, -11, --12, -11, -11, -4, -8, -10, -10, -14, -15, -12, -14, -12, -12, -11, -11, -11, -12, -12, -15, -14, -13, -11, -9, -9, -16, --11, -9, -3, -8, -9, -11, -8, -8, -12, -10, -9, -10, -11, -4, 3, 0, 0, 0, -2, -2, -1, -8, -13, -12, -8, --11, -16, -17, -22, -30, -29, -25, -18, -7, -8, -27, -15, -8, 7, -5, -9, -14, -8, -1, -12, -7, -8, -4, 2, 2, -0, 0, 0, 0, 1, 1, 1, 3, 3, -2, -9, -10, -18, -17, -24, -33, -32, -24, -14, 1, -5, -41, -13, -2, 29, -2, -2, -11, -1, -3, -17, -8, -2, 2, 0, -1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 2, -2, -13, -27, -30, --48, -74, -76, -62, -34, 2, -9, -69, -30, 1, 46, 6, -14, -26, -8, 10, 16, 10, 1, -1, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, 0, -1, 3, 2, -4, 9, 31, 58, 100, 99, 50, 24, 16, 28, 41, 35, 10, 35, 53, 77, -24, 29, 17, 10, -4, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 2, -4, -22, -41, -62, -81, --71, -35, 19, 46, 34, 16, -8, -36, -21, 4, 40, 45, 36, 68, 39, -8, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, 1, -2, 10, 32, 53, 69, 96, 83, 35, -26, -54, -40, 33, 67, 49, 39, -10, -65, -8, -62, -157, --51, 16, -4, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -16, -33, -34, -37, -43, -40, -36, -28, 0, -40, 91, 20, -39, -81, -28, 14, 38, -10, 18, -105, -62, -4, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, --1, -2, 16, 33, 29, 25, 17, 6, -5, -18, -21, -30, -27, -27, -9, 7, 17, 20, 21, 48, 22, 38, 35, 10, -2, --1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, 0, 7, 20, 24, 18, 12, 3, 0, -9, -23, -26, -28, -29, -26, --21, -9, -9, 1, 7, 14, 4, 4, -1, 2, 1, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, -2, -8, -10, --9, -11, -12, -14, -17, -19, -22, -20, -18, -17, -12, -9, -6, -4, -3, -2, 1, -13, -15, -17, -15, -14, -12, -8, -5, --3, -3, -3, -3, -2, -3, -4, -4, -2, 2, 11, 11, 8, 7, 6, 4, 3, 1, 0, -1, -2, -4, -6, -7, -9, --10, -11, -12, -6, -6, -6, -6, -5, -8, -8, -8, -8, -7, -6, -5, -4, -3, -2, -1, 4, 3, 2, 1, 1, 0, --1, -1, -2, -2, -3, -3, -4, -4, -4, -4, -4, -5, -5, -6, -3, -10, -7, -9, -9, -9, -10, -9, -8, -2, -5, --7, -7, -9, -10, -9, -10, -10, -11, -8, -8, -9, -10, -10, -12, -11, -10, -9, -8, -8, -14, -9, -8, -3, -7, -8, --8, -7, -6, -11, -8, -7, -8, -5, -1, 1, 0, 0, 1, 0, 0, 1, -2, -4, -8, -6, -7, -12, -14, -19, -24, --21, -18, -14, -7, -8, -23, -13, -8, 4, -5, -8, -10, -7, -2, -13, -6, -4, 1, 2, 1, 0, 0, 0, 0, 0, -0, 0, 1, 2, 1, -3, -6, -12, -14, -20, -28, -22, -16, -11, -2, -8, -35, -12, -4, 21, -1, -3, -6, -2, -3, --17, -5, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -6, -19, -27, -42, -62, -54, -41, -25, --2, -13, -57, -28, -3, 34, 2, -11, -14, -5, -1, 10, 6, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 4, 5, 16, 34, 52, 75, 68, 30, 11, 10, 22, 38, 30, -3, 23, 35, 49, 9, 22, 13, 2, -3, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -7, -26, -44, -60, -69, -54, -20, 23, 39, 22, -10, -6, -27, -7, 13, 37, 39, 22, 44, 16, -6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -0, 8, 29, 47, 62, 76, 59, 14, -30, -44, -22, 28, 47, 33, 13, -23, -50, -9, -50, -100, -19, 11, -4, 1, -1, -0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -7, -26, -25, -29, -33, -29, -23, -17, 14, 41, 69, -1, -43, -53, --17, 17, 45, -16, 35, -85, -38, 6, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, 9, 25, 20, -16, 9, 2, -6, -17, -19, -25, -19, -18, -3, 14, 30, 39, 47, 64, 7, 24, 25, -1, -2, 0, -1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 2, 15, 20, 16, 13, 6, 3, -3, -14, -18, -19, -20, -18, -16, -11, -14, -10, -6, --2, 9, 10, 5, 4, 2, 2, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, -4, -9, -10, -12, -12, -13, -15, --17, -20, -18, -17, -16, -12, -8, -4, -1, 1, 4, 7, -10, -10, -12, -9, -8, -5, -1, -1, 0, 0, 0, 0, 0, -0, -1, -2, -4, -3, 3, 3, 1, 0, -2, -3, -4, -6, -6, -6, -6, -7, -8, -9, -9, -9, -10, -10, -7, -6, --7, -8, -8, -8, -9, -9, -8, -8, -7, -7, -6, -6, -5, -5, -2, -2, -3, -4, -4, -5, -5, -6, -6, -7, -7, --7, -7, -7, -7, -6, -6, -6, -6, -6, -6, -7, -6, -7, -7, -7, -9, -7, -5, -2, -4, -4, -4, -5, -6, -5, --6, -7, -10, -6, -6, -6, -7, -8, -9, -7, -7, -7, -6, -6, -10, -7, -6, -3, -5, -6, -6, -5, -5, -8, -7, --5, -3, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, -3, -4, -5, -8, -11, -14, -18, -14, -11, -10, -6, -7, --16, -10, -6, 2, -4, -6, -6, -5, -3, -11, -5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -0, -2, -7, -10, -14, -20, -14, -10, -8, -4, -8, -24, -10, -4, 13, -3, -3, -3, -2, -4, -15, -1, 1, -1, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, -11, -21, -32, -44, -34, -24, -16, -4, -12, -40, -21, -4, -21, -1, -9, -7, -4, -4, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, -18, 31, 41, 49, 40, 15, 3, 5, 14, 30, 23, -8, 15, 22, 28, 2, 15, 10, -2, 1, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, -24, -37, -47, -49, -34, -9, 20, 29, 13, 4, -5, -18, 1, 16, -29, 28, 11, 22, 2, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 23, 36, 47, -52, 36, 3, -25, -31, -8, 20, 29, 20, -3, -26, -33, -7, -35, -57, 1, 2, -1, 1, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, -1, 1, -2, -15, -16, -19, -21, -17, -12, -6, 21, 35, 45, -11, -36, -28, -7, 16, 41, -15, 40, --49, -10, 4, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 2, 17, 12, 10, 3, -1, -6, -14, --16, -19, -12, -10, 3, 18, 33, 44, 54, 60, -3, 13, 10, -3, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -1, 7, 15, 12, 12, 7, 5, 0, -7, -10, -11, -12, -11, -12, -11, -15, -15, -13, -11, 10, 12, 6, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -6, -9, -9, -10, -10, -12, -13, -15, -13, -13, -13, --9, -6, -2, 1, 3, 6, 10, -7, -7, -7, -3, -3, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, -2, -4, --2, -2, -3, -4, -5, -6, -7, -8, -7, -7, -7, -7, -7, -8, -8, -8, -8, -8, -6, -5, -6, -7, -8, -6, -6, --6, -6, -5, -5, -5, -5, -5, -5, -6, -5, -5, -5, -5, -6, -6, -6, -7, -7, -7, -7, -7, -7, -7, -7, -6, --6, -6, -6, -6, -7, -5, -4, -5, -5, -5, -6, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -6, -4, -4, --4, -5, -5, -6, -5, -5, -5, -4, -5, -6, -5, -4, -3, -4, -4, -4, -4, -4, -6, -5, 0, 1, 1, 0, 0, -0, 0, 0, 0, 0, 0, 0, 1, 1, 1, -3, -5, -7, -9, -11, -8, -7, -6, -5, -6, -10, -7, -5, 0, -4, --4, -4, -4, -2, -9, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, -6, -9, --12, -8, -6, -6, -4, -7, -14, -7, -4, 5, -3, -3, -1, -2, -3, -10, 2, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -5, -13, -20, -26, -18, -12, -10, -5, -10, -24, -15, -5, 9, -2, -5, -1, -2, --4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 8, 14, 21, 26, 25, 18, -6, -1, 2, 7, 17, 12, -10, 6, 9, 10, -2, 9, 6, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, -8, -18, -25, -30, -28, -17, -1, 15, 19, 7, 2, -4, -10, 5, 13, 18, 16, 4, 7, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 15, 22, 28, 27, 15, -4, -19, -19, --2, 10, 13, 9, -9, -21, -18, -5, -22, -23, 4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, -6, -8, -10, -11, -9, -4, 1, 18, 24, 21, -11, -23, -12, -2, 10, 24, -10, 29, -13, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 9, 6, 4, 0, -2, -5, -10, -11, -12, -7, -4, 5, -16, 26, 34, 42, 41, -8, 4, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 9, -7, 8, 5, 4, 1, -2, -5, -5, -6, -6, -8, -10, -13, -14, -13, -13, 8, 11, 2, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -6, -5, -6, -6, -7, -8, -8, -8, -8, -8, -6, -4, -1, 1, 3, -5, 8, -4, -4, -3, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, -4, -4, -4, -5, -5, --6, -6, -6, -6, -6, -5, -5, -6, -6, -6, -5, -5, -5, -4, -4, -5, -5, -5, -1, -1, -1, -1, -1, -1, -1, --1, -1, -1, -1, -5, -5, -5, -5, -5, -5, -5, -5, -6, -6, -6, -6, -5, -5, -5, -5, -5, -4, -4, -4, -6, --1, -1, -1, -1, -2, -2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, -2, -1, -1, 0, -1, -1, -1, -1, --1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, -1, -1, -2, -2, -1, -1, -1, -1, -1, -2, -1, -1, 0, -1, -1, -1, -1, 0, -2, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -2, -1, -1, -1, -1, --1, -2, -1, -1, 1, -1, -1, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, -2, -4, -5, -3, -1, -1, -1, -2, -4, -3, -1, 2, -1, -1, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 5, 5, 7, 5, 3, 1, 0, 1, 2, 5, -4, -1, 2, 2, 2, 0, 3, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, --2, -4, -5, -6, -5, -3, 0, 3, 4, 1, 0, -1, -2, 2, 3, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 6, 5, 3, -1, -4, -3, 1, 3, 3, 3, -2, --4, -3, -1, -5, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -2, --1, -1, 0, 1, 5, 6, 4, -3, -5, -2, 1, 3, 6, -2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, -1, -1, -2, -2, -2, -1, 0, 2, 5, 7, 9, 11, 10, --2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 2, 2, 2, 1, 1, -0, -1, -1, -1, -1, -2, -2, -3, -3, -3, -3, 2, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -1, -1, 0, 1, 1, 2, 2, -1, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -2, -1, -1, -1, -2, -2, -2, -1, -1, --1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, -2, --1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -}; -#else const uint32_t defaultHRIR_rom_AlphaR32[470 * 86] = { 0x3e806800,0x3e6f0000,0x3e9c1000,0x3d700000,0xbd6f8000,0xbe246000,0x3e023000,0xbd218000,0xbe211000,0xbe284000,0xbe220000,0xbe04a000,0xbe206000,0xbe25f000,0xbe203000,0xbd250000,0x3dc1e000,0xbe2ea000,0xbd394000,0x3d414000,0x3e8d9000,0x3e5e1000,0x3e6db000,0x3e70d000,0x3e720000, 0x3e743000,0x3e767000,0x3e78a000,0x3e7d1000,0x3e815000,0x3e84b000,0x3e879800,0x3e8c0000,0x3e89e000,0x3e872000,0x3e7fe000,0x3e80d000,0x3e956000,0x3e860000,0xbdb42000,0x3e47b000,0x3d78c000,0x3d8d8000,0x3dff4000,0x3dd6c000,0x3e2a7000,0x3df98000,0x3d724000,0x3de2e000,0x3dfba000, @@ -16484,69 +8264,6 @@ const uint32_t defaultHRIR_rom_AlphaR32[470 * 86] = { 0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0x38800000,0x00000000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x38800000,0x00000000,0x38800000,0xb9000000, 0xb8800000,0xb9000000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000,0xb8800000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_E32_Q = 28; -const int32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470] = { -88764792, 83154280, 89567896, 78948672, 86760408, 89708736, 94515024, 97075376, 101266112, 94597840, 91159944, 87645936, 84628240, 82086760, 79794632, 78333560, 76692688, 75071136, 73237424, 67923256, 76252432, 74141240, 78189424, 107201392, 71719344, -75125664, 97309600, 98827520, 96421120, 88357552, 97081648, 100506672, 98532008, 77917688, 77152960, 107219416, 88028904, 112672368, 116471080, 117347168, 134218624, 147167536, 164400240, 175328784, 184402144, 162018096, 146121104, 130794472, 118289160, 108650152, -101614928, 96374624, 91158064, 86723120, 79535016, 72438928, 71453880, 70922192, 53523140, 55598392, 47315116, 45579852, 48230064, 48041956, 52556560, 51296820, 52400788, 52576056, 50065928, 56636440, 59949400, 67339632, 78139536, 98278880, 122492072, -166695632, 187722080, 225882864, 262596160, 286658464, 320413216, 268372288, 234645712, 202450896, 172293616, 149537360, 130562320, 117104992, 103697328, 93113392, 74985008, 65057608, 49235208, 45697600, 35726192, 33590212, 28013160, 25821112, 23743668, 24995424, -26120740, 29301744, 23596464, 26735716, 29194528, 34642964, 41113520, 55981396, 74031208, 115518848, 167319648, 239492512, 287700480, 364861696, 421377760, 482670976, 536503680, 415292544, 329341248, 250674864, 191794640, 152853984, 128947024, 112346128, 96323696, -84750696, 63434088, 50679144, 37386564, 30244732, 20642136, 18164864, 12316379, 10165017, 8859902, 10131905, 11358807, 12185564, 9624144, 9615497, 13032031, 19697580, 35700268, 43852372, 67640272, 265618624, 437818400, 564164416, 615994944, 681542016, -624339136, 600226624, 605442240, 648308096, 697725184, 710520064, 705592512, 655239936, 585358976, 445528896, 341431488, 275092224, 169147216, 109975816, 67430024, 49470676, 29468584, 21026332, 14370108, 11937837, 10162847, 12906892, 13315580, 13696627, 13521057, -17560812, 28145764, 41271088, 60520188, 84419384, 150303488, 306077216, 377584960, 958118272, 987493312, 969548480, 746362176, 696323584, 755882432, 778233408, 799788672, 821941440, 807863104, 768089728, 701924608, 534951584, 384468704, 274187296, 171217648, 130924112, -83441056, 71891696, 44193952, 29951868, 18054548, 13779176, 11880873, 14107454, 16340919, 20281156, 18668824, 21230784, 28922916, 38335692, 54489088, 90764640, 148556112, 371143104, 649774336, 1292625792, 1099006336, 1073724416, 694688128, 657294016, 754294336, -729570560, 769303872, 855147712, 827664384, 758055744, 648321024, 534000256, 406781152, 302948064, 187090976, 145380176, 86831192, 74169080, 53718272, 51629244, 30705228, 23902472, 27891308, 22709404, 25020524, 41272160, 22688808, 22566576, 30551884, 62864472, -71180168, 169266880, 140899696, 312179456, 739417920, 781988224, 592053120, 613542400, 524835712, 571816064, 697799296, 695228096, 708384448, 671771200, 658978880, 603761600, 493885504, 400489728, 296929152, 206181536, 153225600, 127949296, 93457864, 76081256, 55108576, -50589920, 35352432, 27543844, 24296412, 20374904, 25036804, 64653480, 28373816, 24195432, 30310956, 35979384, 55412600, 78343600, 129836368, 250915984, 388895936, 443216000, 489134240, 497446048, 491656320, 497940000, 554608640, 521468864, 533976896, 558329536, -513475584, 453025216, 373129280, 276156576, 208258128, 174907120, 148994384, 138110848, 119289632, 94527392, 71135584, 52428660, 43193828, 36249968, 28152148, 26008996, 28467696, 43713416, 31675828, 33345056, 39368076, 50085964, 61751020, 85498000, 209498928, -235085216, 263595488, 325042624, 350326400, 372715456, 407119936, 418842592, 416347488, 412221568, 399199072, 373971680, 325970528, 280420960, 239514688, 208481904, 176379120, 152066624, 140767920, 151715696, 110822912, 107211456, 81673680, 74075024, 53288272, 39497556, -33168844, 33097392, 35723392, 39655904, 39348792, 39357044, 40352192, 51033444, 69666112, 86836688, 138149872, 169270320, 215912432, 256639280, 284972704, 329530784, 326036192, 332718048, 347716800, 322209504, 305959584, 297320032, 268468000, 246061872, 224096352, -201940976, 180767424, 164286032, 149114112, 150046912, 128149408, 113335368, 93559704, 82042536, 69680064, 67254360, 57141164, 59867820, 56300788, 62190192, 48743336, 60995888, 53560096, 72187472, 88418736, 117483168, 138640176, 226355840, 209805104, 198744944, -210018080, 219899712, 231696304, 245910496, 264714896, 252379328, 245676960, 237346128, 227807696, 219154272, 210422976, 198666672, 186177552, 176694560, 168342224, 157949408, 157638512, 165687248, 119479952, 124072000, 113449960, 104250000, 110066016, 112000880, 122974624, -113647872, 124833280, 122037704, 109781520, 124260128, 131341872, 143169440, 163291504, 182605760, 201898144, 171770224, 183803008, 183722784, 188505392, 191095264, 196578768, 190499856, 187087472, 183503584, 180612704, 178140464, 176137344, 173869856, 171916864, 169038336, -167505024, 157078480, 184152704, 170130176, 182590336, 260478160, 164322656, 172591632, 233511808, 240339856, 233455696, 212571856, 234438176, 239829680, 230160944, 177843984, 176928784, 259317808, 197175280, 216098544, 66454, 52974, 45201, 52436, 55962, -47262, 67950, 66589, 46833, 51164, 42948, 28809, 27699, 32036, 51181, 54323, 60265, 61464, 65271, 70572, 78735, 82785, 81554, 83702, 59320, 53815, 48467, 65830, 70913, 77375, -65366, 60700, 57582, 50489, 53104, 97129, 60194, 94904, 62116, 60374, 52409, 37994, 85263, 92576, 42162, 63020, 45874, 44759, 27101, 31330, 73600, 74479, 94760, 92132, 107529, -130759, 159688, 181742, 177775, 167943, 95601, 66296, 55033, 96618, 121949, 136438, 106931, 78740, 63575, 44007, 65116, 236267, 124338, 115484, 135486, 98808, 111953, 78032, 203032, 188427, -38135, 83330, 59470, 192630, 136026, 128787, 211054, 117492, 139852, 121468, 159749, 219748, 295184, 355130, 370178, 349468, 165338, 84444, 80059, 178036, 232713, 293670, 202451, 142990, 99841, -72537, 82254, 465060, 134017, 314897, 201001, 144472, 86624, 178093, 285233, 296164, 83322, 103829, 176616, 737874, 684338, 608883, 553716, 300299, 293433, 230516, 290653, 429355, 576616, 685622, -692436, 749041, 415458, 223031, 161973, 290869, 453736, 580284, 410533, 310441, 152973, 242645, 180650, 1203230, 518314, 2063561, 583047, 371822, 857107, 2511286, 1149511, 617894, 366631, 687026, 541444, -954792, 861925, 775444, 526969, 205270, 172786, 174457, 168018, 211286, 314474, 580202, 668530, 713197, 409603, 292147, 237663, 101276, 127488, 570967, 469537, 613627, 601192, 772688, 349135, 902859, -1598387, 2659894, 3503168, 638041, 594998, 2253532, 1860719, 1044623, 896163, 326663, 385871, 414596, 287523, 257353, 188977, 209290, 247741, 185785, 153501, 180842, 227122, 186795, 163298, 188091, 223272, -175225, 126502, 209438, 252226, 254670, 79264, 103719, 359804, 702839, 630992, 964727, 2092033, 1164777, 1510354, 985643, 942452, 804719, 1164627, 706009, 1148264, 838472, 681035, 361884, 188463, 148900, -213189, 231705, 206585, 152840, 229760, 221864, 409448, 83749, 50089, 134052, 104480, 53835, 63976, 49660, 19844, 19348, 106397, 184288, 221416, 299520, 479143, 672867, 838588, 2764388, 3516394, -5979068, 5439607, 2811569, 1481866, 1002864, 951638, 589397, 517885, 480488, 330547, 310570, 213213, 189947, 174103, 172312, 199294, 179346, 241816, 134745, 141947, 132570, 133018, 84667, 62770, 30933, -36353, 64134, 80088, 111688, 328644, 282774, 591165, 1341411, 2102108, 5088256, 6774223, 5743014, 3634125, 2306786, 1922693, 2057051, 1522157, 887107, 616255, 436700, 377950, 287491, 226553, 160504, 143662, -122504, 124496, 118315, 93749, 63276, 54768, 98046, 50030, 50522, 93755, 51623, 62787, 97689, 209201, 426342, 756690, 2191371, 3187060, 3273195, 3888363, 3669394, 3390897, 3082552, 2442266, 2300435, -2430079, 2199177, 1753876, 1155242, 1069401, 1073465, 1154353, 1085003, 750405, 718120, 617612, 479363, 378868, 240220, 89789, 109155, 88720, 81457, 83375, 170349, 353176, 507355, 722771, 915800, 1386451, -1826830, 2155540, 2035140, 2023378, 2436629, 2890536, 1823415, 2025958, 1986094, 2151146, 2645193, 2373959, 2571321, 3107175, 2272467, 1729851, 1587775, 1306493, 1077963, 906116, 722697, 599865, 504486, 344938, 220942, -151988, 112137, 83044, 143452, 194452, 316751, 498807, 623972, 767680, 1031986, 1085393, 1220395, 1436120, 1530913, 1724272, 1939136, 1858412, 1337871, 1311818, 1218715, 1150221, 1113470, 1107520, 1120961, 1194145, -1074823, 1066466, 1004071, 955600, 893671, 870033, 719196, 594753, 480423, 388843, 299234, 222460, 256003, 254800, 294668, 329832, 408147, 483236, 572947, 669785, 774427, 884155, 1011827, 1152265, 1156468, -1183515, 1194548, 1225833, 980419, 978526, 958209, 961303, 952923, 981439, 997783, 1027201, 986526, 953939, 931483, 888459, 855059, 837095, 779434, 735477, 693707, 641139, 605059, 535130, 600212, 637533, -707865, 658214, 704060, 775223, 800163, 819926, 851152, 886166, 925970, 977775, 948583, 938297, 1025715, 989567, 1135611, 3198, 2027, 2275, 2924, 3620, 6263, 3541, 2555, 1034, 3127, -4225, 5513, 3998, 4382, 6713, 7152, 6796, 5225, 3090, 2394, 2270, 2313, 2447, 3059, 4312, 3711, 1164, 2398, 2146, 2321, 1506, 1016, 1876, 1239, 1771, -4253, 2160, 2203, 3188, 8952, 14407, 25799, 15730, 9628, 1868, 6333, 7900, 15828, 7249, 15180, 34918, 45105, 42205, 27296, 13374, 8477, 7868, 5952, 4464, 5963, -11831, 10884, 3090, 6801, 6964, 10674, 9829, 7773, 9591, 2488, 1714, 12072, 2762, 1004, 7128, 13771, 29994, 57041, 45002, 28559, 10833, 14519, 24108, 54904, 27276, -34981, 77698, 82182, 74444, 44183, 15453, 10541, 14291, 8150, 5908, 9843, 25664, 18865, 23130, 18016, 34615, 88405, 84563, 57901, 41131, 8578, 2425, 28011, 2121, 14449, -8517, 59712, 110105, 207718, 147745, 94806, 32765, 23911, 27994, 121974, 30231, 108405, 314472, 395642, 348618, 222836, 110187, 86484, 86226, 50823, 21695, 42445, 58343, 38872, 27525, -25549, 27958, 62487, 135928, 118038, 103583, 59976, 20776, 99839, 25285, 216499, 201396, 419679, 405551, 347637, 130116, 57909, 83741, 42921, 159471, 325610, 298255, 247963, 397174, 326795, -251387, 242108, 255418, 306517, 288198, 222659, 147261, 116469, 58396, 24923, 27253, 27755, 36427, 3985, 5280, 55355, 148000, 127637, 113052, 76003, 137523, 293932, 121464, 115765, 142665, -314801, 412330, 433141, 120072, 72254, 82292, 392356, 280763, 350680, 331454, 173956, 155794, 111830, 101097, 64509, 78292, 28993, 16225, 9461, 8147, 2817, 14618, 17402, 23525, 10334, -3687, 24527, 98371, 383588, 361832, 194974, 146877, 1540808, 2815206, 657752, 178451, 501600, 382458, 399655, 517014, 395571, 397478, 299271, 101702, 159574, 200991, 136159, 120152, 81809, 49705, -26469, 24330, 9560, 6910, 18044, 16525, 10507, 12890, 628, 3637, 1379, 5688, 17049, 31325, 25142, 28696, 127722, 680312, 696979, 1457739, 513336, 221188, 291670, 267806, 192548, -258036, 127694, 148795, 90198, 34103, 62912, 81705, 69226, 53972, 52404, 41801, 50449, 53103, 45737, 36651, 27503, 5658, 403, 1696, 643, 1506, 2044, 389, 818, 15861, -23653, 32226, 303009, 597450, 342691, 307325, 200409, 162752, 69201, 38990, 81027, 99923, 156117, 192770, 207006, 170543, 120379, 89590, 33333, 11024, 17888, 41425, 69142, 93127, 101326, -86058, 68922, 28117, 8778, 1407, 2171, 3916, 4785, 6895, 6870, 11834, 3804, 9216, 51021, 236948, 109311, 123471, 137046, 126597, 112026, 98466, 108008, 130409, 118834, 121986, -137879, 124797, 104392, 69109, 41258, 16644, 6835, 7736, 13640, 25683, 29392, 23322, 16036, 15991, 15452, 14316, 10205, 17803, 24048, 34901, 40517, 39741, 53216, 67236, 75907, -87733, 76277, 78684, 68080, 52131, 36519, 25235, 24133, 28209, 24076, 22514, 25592, 14744, 12608, 17789, 15356, 16170, 19232, 18574, 20423, 24473, 27831, 32923, 39624, 31386, -32320, 44473, 38130, 39464, 47257, 48799, 53447, 67506, 68935, 81876, 93475, 80213, 56659, 54679, 47212, 40957, 32438, 25888, 21784, 22683, 22229, 22782, 22321, 21580, 20127, -20870, 21202, 22898, 25264, 28517, 32323, 36568, 36143, 35537, 38442, 42749, 48746, 56750, 54185, 55595, 59278, 61491, 66912, 73783, 65843, 58663, 57199, 52452, 29268, 27792, -26395, 24397, 23574, 22827, 21880, 21117, 21100, 21273, 21969, 22894, 24045, 25405, 26290, 27088, 27988, 29173, 30494, 32428, 32392, 32766, 33866, 33519, 34684, 38412, 36958, -36665, 35511, 35696, 35348, 36231, 32192, 30868, 31825, 30821, 36350, -}; -#else const uint32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470] = { 0x3ea94e2f,0x3e9e9aad,0x3eaad653,0x3e969528,0x3ea57b7b,0x3eab1b18,0x3eb445ea,0x3eb92816,0x3ec12658,0x3eb46e5a,0x3eaddfb1,0x3ea72bde,0x3ea16a62,0x3e9c916d,0x3e983239,0x3e9568cf,0x3e92479a,0x3e8f2fd4,0x3e8bb076,0x3e818da7,0x3e9170a2,0x3e8d69c7,0x3e95226e,0x3ecc786e,0x3e88cb36, 0x3e8f4a74,0x3eb99a74,0x3ebc7fa0,0x3eb7e8a0,0x3ea88756,0x3eb92b26,0x3ebfb386,0x3ebbef55,0x3e949dbf,0x3e932858,0x3ecc813b,0x3ea7e6dd,0x3ed6e7ce,0x3ede26a5,0x3edfd26c,0x3f000038,0x3f0c5993,0x3f1cc8c7,0x3f2734e1,0x3f2fdc0e,0x3f1a8333,0x3f0b5a19,0x3ef9787d,0x3ee19e61,0x3ecf3bd5, @@ -16606,68 +8323,6 @@ const uint32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470] = { 0x38ce3600,0x38be9a00,0x38b82c00,0x38b25600,0x38aaf000,0x38a4fa00,0x38a4d800,0x38a63200,0x38aba200,0x38b2dc00,0x38bbda00,0x38c67a00,0x38cd6400,0x38d3a000,0x38daa800,0x38e3ea00,0x38ee3c00,0x38fd5800,0x38fd1000,0x38fffc00,0x39044a00,0x3902ef00,0x39077c00,0x39160c00,0x39105e00, 0x390f3900,0x390ab700,0x390b7000,0x390a1400,0x390d8700,0x38fb8000,0x38f12800,0x38f8a200,0x38f0ca00,0x390dfe00, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470] = { -88760616, 79018416, 90166504, 83236560, 88159800, 108024648, 77068208, 78038792, 98254112, 100230288, 97137408, 88461312, 96433632, 98852192, 97276480, 75082112, 71550016, 106986256, 78099360, 74156248, 76344976, 67961992, 73216416, 75071136, 76690944, -78336760, 79795336, 82089656, 84632528, 87644704, 91143080, 94597776, 101275232, 97075600, 94508208, 89736288, 86686056, 117311776, 114996008, 113576624, 78532160, 67534416, 59446544, 56482944, 49819276, 52182616, 52621296, 51400732, 52711936, 48079572, -48075048, 45582644, 47691592, 55576172, 53204512, 71099896, 71140240, 72448904, 79583656, 86694624, 91176528, 96374240, 101619424, 108647776, 118282488, 130797880, 146140144, 161999376, 184326080, 175325072, 164472096, 147046928, 134462160, 165361440, 125170128, -98674000, 74151504, 55850892, 42240028, 34614856, 29417084, 26595552, 23340964, 29375460, 25912520, 25041416, 23813124, 25759040, 27539632, 33571624, 35717832, 45503096, 49805496, 64785272, 75062272, 93078176, 103676048, 117107440, 130548320, 149577296, -172297696, 202450832, 234622336, 268349600, 320584800, 286647904, 262461312, 226039664, 187681104, 250489088, 158039552, 114963944, 65907796, 45136720, 31795876, 20084012, 12654827, 9501616, 9641118, 12179912, 11257490, 10161779, 8827229, 10296505, 12535888, -18392484, 20601924, 30287552, 36079084, 51857232, 62754384, 85218328, 96108616, 112447424, 128932256, 152835296, 191765648, 250675680, 329322944, 415525952, 535542016, 483468544, 420473664, 366451584, 283952032, 608588096, 389219456, 276151904, 134411136, 83525544, -55955116, 42569052, 27432772, 17738988, 13409859, 13668913, 13309946, 12848914, 10447305, 11459800, 14376133, 20331988, 30079616, 48462460, 63412900, 114058024, 166920608, 276709408, 340651616, 446025408, 584658624, 655611648, 705746304, 710336192, 697861056, -648312832, 604570560, 602152064, 620239744, 690564352, 598375680, 1010646208, 337472704, 306583424, 132161456, 97220096, 55720220, 34675920, 29772444, 20689712, 18859656, 20003828, 16276468, 14182655, 12021990, 13666889, 17546668, 31488888, 44591744, 70501512, -81733888, 133078544, 169895984, 275150688, 383871328, 535501664, 700991616, 768456448, 808051008, 822063040, 799996608, 778144960, 755152704, 697802304, 741834176, 982159808, 959763648, 1371421568, 582091008, 412819168, 149369808, 158694000, 73629344, 58067900, 30516828, -22633720, 23190980, 41626956, 25339464, 22393744, 27695812, 23351728, 32009424, 50183724, 53231756, 74661904, 84715552, 147816976, 185713312, 303955488, 406126048, 534531232, 647734208, 758537472, 827758720, 854989376, 769130112, 729778368, 753353536, 658719296, -689954752, 1087904256, 1064682880, 867167936, 618503936, 319939040, 152573424, 84540664, 56803532, 35164204, 29349044, 24133412, 27896784, 63446820, 24820004, 20324292, 24871784, 28144432, 35140888, 51398368, 57463684, 76397104, 88220632, 131920352, 151028096, -207473104, 296196704, 400979200, 493415456, 604162368, 659172992, 671658304, 708506688, 695342400, 697125888, 572681856, 522107008, 620476992, 567286336, 438105088, 411682400, 271004064, 151300992, 98388896, 62410412, 45789872, 41208024, 33841976, 31885344, 42695936, -28366484, 26102400, 27804588, 34291904, 43999168, 52529624, 66049780, 103064936, 115805032, 140562016, 148172160, 175213568, 208137680, 276240928, 372869952, 453212064, 513631776, 558223680, 534010592, 521493600, 554389952, 497946496, 491599648, 497854464, 490101664, -320390720, 267051040, 204771024, 134351504, 88094608, 73433712, 51393940, 39785272, 39000272, 39520284, 37839368, 35730848, 33088420, 33640416, 39713228, 52888068, 71058840, 80475072, 103289056, 117327136, 146116240, 142602832, 151264592, 176713248, 208335456, -239621936, 280394944, 326010464, 373923648, 399279648, 412166208, 416335104, 418849248, 407443488, 372017152, 351944800, 257733520, 215815824, 174477040, 140826608, 115503616, 86781536, 71969952, 53304496, 61231524, 48593056, 62089816, 56050132, 59752936, 56412344, -67082092, 70255920, 83937568, 93564344, 113650248, 125184864, 151155072, 149027664, 164250064, 180802784, 201900176, 224080832, 246024896, 268482720, 297299360, 305989952, 322232160, 347701952, 332664896, 326001248, 329599648, 284727136, 198522400, 210461072, 221135744, -160725616, 144860992, 132276696, 124353200, 109418728, 122174296, 125313112, 113349984, 122832112, 112214944, 111025920, 104724352, 113419360, 124270624, 119143328, 164230928, 159072496, 157873024, 168215072, 176731312, 186146816, 198693248, 210425008, 219156496, 227801296, -237363296, 245686608, 252379568, 264707424, 245918416, 231705824, 219903344, 210047552, 171788192, 201089152, 183559792, 195766992, 253686384, 177635024, 177477712, 230032128, 239713264, 234726480, 212597200, 233288704, 240406992, 233676048, 172467696, 164085536, 263048240, -182861264, 170227872, 183018128, 156971712, 167628432, 169009600, 171948384, 173868352, 176141632, 178147056, 180612704, 183508896, 187093520, 190499520, 196578864, 191095456, 188512528, 183686048, 183842848, 216066112, 66454, 52478, 45196, 52985, 60021, -97129, 53153, 50389, 57264, 60383, 65366, 77065, 70844, 65830, 48474, 53842, 59304, 83710, 81124, 82429, 78583, 70572, 65271, 61464, 60265, 54233, 51220, 32051, 27699, 28809, -42948, 51164, 46833, 66642, 67950, 47262, 55962, 60333, 61966, 94535, 124480, 235239, 64953, 43792, 63419, 78877, 107304, 136386, 122238, 96773, 55033, 66284, 95139, 167853, 178428, -181964, 159688, 130528, 107529, 92132, 94585, 74479, 73075, 31330, 27039, 44842, 45911, 63139, 42145, 92970, 85483, 37994, 52232, 98697, 135772, 115488, 133165, 468268, 81747, 72983, -99613, 142703, 201930, 293427, 231904, 178790, 80580, 84121, 167325, 349529, 368250, 355050, 294736, 219986, 159749, 121161, 140029, 117492, 212175, 128720, 135709, 192431, 59470, 83526, 38187, -187767, 203032, 78100, 111953, 144784, 199089, 312592, 522148, 1189550, 181739, 241329, 152867, 310344, 411563, 579716, 452748, 290933, 161002, 226890, 405855, 751558, 695691, 686065, 576943, 429622, -290815, 230933, 293057, 300415, 549541, 611093, 686590, 736727, 176823, 103687, 82843, 297371, 285884, 177413, 86992, 374054, 583723, 2066685, 1589315, 901935, 353281, 765961, 599661, 614773, 465413, -573946, 126739, 100420, 240168, 291803, 406917, 724412, 672415, 577590, 318051, 211964, 168130, 174095, 172951, 205969, 523728, 777869, 865710, 958162, 542766, 684076, 365231, 619803, 1148669, 2515892, -855124, 643134, 3494509, 2681784, 2085448, 968842, 647105, 672262, 367330, 100569, 78852, 255927, 250759, 210356, 126405, 175658, 225716, 187604, 161074, 190400, 226511, 180067, 153553, 186123, 247741, -209601, 188893, 258107, 287967, 415218, 386959, 326139, 888893, 1047648, 1865588, 2249168, 593188, 992760, 1511550, 1170495, 811210, 656193, 484328, 294902, 226509, 184678, 101491, 19111, 19886, 49614, -64208, 54187, 106296, 133088, 48033, 84258, 408395, 221702, 230175, 153193, 206816, 231646, 212816, 149179, 189298, 362054, 681499, 839328, 1142820, 707741, 1169504, 804112, 939876, 6060110, 3421758, -2841908, 2200771, 1324187, 581918, 290715, 311484, 110422, 82558, 61472, 35801, 31030, 64738, 84532, 134908, 132343, 141186, 136720, 241857, 178536, 199347, 172860, 174390, 189670, 212285, 311339, -331137, 480912, 517840, 588980, 949871, 1002710, 1478128, 2822351, 5391308, 5729717, 6764645, 5183223, 4054833, 3189906, 3225696, 2168591, 749482, 420969, 206997, 99269, 62255, 51332, 96468, 50535, 50107, -99215, 55531, 65947, 93898, 117514, 124548, 123063, 143555, 160649, 226379, 288233, 378211, 436714, 615699, 887004, 1517102, 2065232, 1923311, 2308211, 3633363, 3086423, 3373211, 3527602, 2903536, 2497282, -2092813, 2014602, 2200209, 1804860, 1386897, 914617, 722377, 505144, 355574, 170209, 82672, 81928, 88967, 109537, 90524, 239443, 378789, 479624, 617943, 719053, 749363, 1084323, 1154454, 1070666, 1069982, -1156671, 1748026, 2205152, 2434719, 2299435, 2440211, 1982889, 2040317, 1863490, 1829126, 1890015, 1689610, 1532443, 1423298, 1225762, 1089949, 1030862, 767976, 625925, 497740, 317019, 194588, 144338, 82417, 111654, -152829, 220623, 344833, 504976, 599865, 722697, 906673, 1077890, 1306493, 1586742, 1729370, 2272467, 3104504, 2570495, 2371158, 2643315, 2155482, 1218715, 1305977, 1320234, 1221572, 1202128, 1191848, 1160689, 1155982, -1012180, 882569, 775136, 669774, 572840, 483450, 407511, 330048, 294287, 255652, 256620, 221928, 299755, 388843, 479806, 594753, 719196, 870825, 893671, 954831, 1004071, 1067399, 1075680, 1195616, 1121022, -1107520, 1113470, 1150221, 958209, 978591, 985801, 992879, 1022510, 937395, 946857, 976603, 925835, 886419, 851136, 820435, 800163, 775224, 704154, 658552, 708095, 637304, 600212, 535833, 605046, 641139, -693707, 735477, 779434, 837095, 856027, 888459, 931483, 953939, 986526, 1027201, 997783, 981439, 953746, 961618, 1135611, 3198, 2924, 2298, 2027, 2160, 4253, 1771, 1231, 1844, 1040, -1506, 2300, 2146, 2411, 1164, 3711, 4312, 3068, 2452, 2306, 2270, 2394, 3090, 5238, 6796, 7152, 6713, 4382, 3998, 5449, 4225, 3127, 1034, 2555, 3541, -6263, 3620, 8967, 3183, 2222, 2748, 12072, 1714, 2507, 9575, 7665, 9829, 10709, 6984, 6801, 3122, 10837, 11879, 5940, 4561, 6013, 7868, 8477, 13374, 27331, -42205, 45055, 34956, 15157, 7249, 15828, 7900, 6333, 1845, 9628, 15811, 25799, 14407, 13826, 7133, 1004, 2078, 28250, 2475, 8578, 41076, 58399, 84442, 88653, 34510, -18075, 23399, 18812, 25620, 10058, 5648, 8146, 14181, 10642, 15453, 44069, 74444, 82182, 77895, 34981, 27350, 54536, 24133, 14519, 10878, 28462, 45002, 57041, 30059, 59190, -8935, 14366, 25391, 98871, 20664, 60148, 104010, 118965, 134813, 62307, 27943, 25575, 28189, 38778, 58122, 42115, 22305, 50766, 86635, 86286, 110499, 223142, 348618, 395158, 314472, -108593, 30059, 121974, 28254, 23911, 32511, 95019, 148154, 207718, 110105, 419100, 201646, 216249, 137823, 77223, 112996, 127140, 148496, 55691, 5279, 3942, 36177, 27357, 27803, 25145, -57847, 116571, 147509, 223238, 287100, 308165, 254774, 243038, 251387, 327613, 394729, 248676, 299408, 325535, 159760, 43032, 83110, 58339, 130620, 347579, 404949, 115410, 120305, 297287, 144608, -191264, 366259, 378109, 99692, 24054, 3629, 10420, 23525, 17310, 14362, 2779, 7647, 9658, 15646, 30497, 77731, 64110, 101234, 111990, 156077, 173956, 329997, 352065, 281162, 392356, -82263, 72390, 119691, 435032, 414818, 314648, 142669, 658800, 2811296, 1540892, 676657, 126419, 28620, 25014, 31345, 17431, 5619, 1455, 3637, 635, 13202, 10407, 16227, 17817, 6988, -9612, 24303, 26626, 49705, 81786, 120152, 136238, 199900, 159574, 101992, 298938, 399479, 395033, 513148, 401787, 382486, 501141, 177525, 517773, 1450625, 698496, 594854, 302476, 32224, 23863, -16590, 870, 411, 2103, 1524, 604, 1711, 407, 5507, 26939, 36730, 46555, 53165, 50531, 41473, 52612, 53972, 69093, 81536, 62957, 34103, 90198, 148698, 127641, 256211, -193452, 268448, 292061, 220226, 199482, 306203, 343473, 235865, 51975, 9332, 3736, 11349, 7127, 6922, 4846, 3991, 2213, 1438, 9076, 28209, 67403, 87335, 101236, 93102, 69034, -41358, 17953, 10989, 33304, 89539, 120379, 170675, 206891, 192770, 156117, 99982, 81574, 38924, 69300, 162623, 136974, 123679, 107462, 88002, 76649, 68382, 53184, 40640, 40074, 35466, -23960, 18012, 10025, 14262, 15352, 15740, 15504, 23691, 28989, 25578, 13777, 7736, 6835, 16644, 41258, 69109, 104473, 124852, 137632, 122037, 118834, 130003, 108008, 98495, 112026, -126530, 67561, 79122, 76156, 78230, 92263, 81456, 68992, 66903, 53458, 49080, 47154, 39825, 37986, 44473, 32320, 31358, 39796, 32938, 27613, 24535, 20400, 18574, 19235, 16170, -15356, 17789, 12608, 14701, 25592, 22452, 24076, 28209, 24231, 25235, 36519, 52048, 47212, 55071, 56905, 51777, 56544, 58169, 65843, 73783, 66912, 61491, 59278, 55595, 54466, -56633, 48746, 42631, 38146, 35537, 36089, 36499, 32323, 28517, 25264, 22898, 21202, 20870, 20127, 21580, 22321, 22782, 22229, 22683, 21784, 25888, 32438, 40922, 26395, 27923, -29268, 30849, 32012, 30959, 32192, 36231, 35348, 35696, 35410, 36665, 36958, 38412, 34684, 33519, 33978, 32886, 32234, 32428, 30494, 29173, 27988, 27088, 26290, 25314, 24045, -22894, 21969, 21273, 21100, 21076, 21880, 22827, 23574, 24298, 36350, -}; -#else const uint32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470] = { 0x3ea94c25,0x3e96b736,0x3eabfa9d,0x3e9ec2da,0x3ea826c7,0x3ece0a69,0x3e92fef6,0x3e94d8e1,0x3ebb67a4,0x3ebf2c92,0x3eb94660,0x3ea8ba00,0x3eb7eebc,0x3ebc8bac,0x3eb98a48,0x3e8f3530,0x3e887888,0x3ecc0f62,0x3e94f674,0x3e8d711b,0x3e919dd2,0x3e81a091,0x3e8ba634,0x3e8f2fd4,0x3e9246c0, 0x3e956a5f,0x3e983291,0x3e9c92d7,0x3ea16c7a,0x3ea72b44,0x3eadd775,0x3eb46e52,0x3ec12acc,0x3eb92832,0x3eb44296,0x3eab288c,0x3ea5572d,0x3edfc124,0x3edb5665,0x3ed8a156,0x3e95c9c8,0x3e80cfca,0x3e62c544,0x3e577720,0x3e3e0ba3,0x3e470f96,0x3e48bbfc,0x3e441407,0x3e491480,0x3e3768b5, @@ -16727,821 +8382,6 @@ const uint32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470] = { 0x38e4a800,0x38f10200,0x38fa1800,0x38f1de00,0x38fb8000,0x390d8700,0x390a1400,0x390b7000,0x390a5200,0x390f3900,0x39105e00,0x39160c00,0x39077c00,0x3902ef00,0x3904ba00,0x39007600,0x38fbd400,0x38fd5800,0x38ee3c00,0x38e3ea00,0x38daa800,0x38d3a000,0x38cd6400,0x38c5c400,0x38bbda00, 0x38b2dc00,0x38aba200,0x38a63200,0x38a4d800,0x38a4a800,0x38aaf000,0x38b25600,0x38b82c00,0x38bdd400,0x390dfe00, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_Alpha16_Q = 14; -const int16_t defaultHRIR_rom_AlphaL16[470 * 43] = { -8380, 6269, 8401, 7771, 8176, 8335, 8674, 8832, 8988, 8768, 8637, 8490, 8326, 8172, 8017, 7913, 7802, 7708, 7597, 7296, 7907, 5897, 4635, 1865, 6344, -4660, 2063, 2078, 2146, 2504, 2302, 2297, 2416, 4792, 6824, 2333, 4771, 4461, 8916, 9107, 9676, 10313, 11364, 11896, 12044, 11458, 10925, 10419, 9924, 9478, -9064, 8746, 8432, 8229, 7803, 7551, 7276, 3787, 5757, 5601, 5112, 4603, 5442, 5504, 5574, 4940, 5697, 6147, 5543, 5999, 5414, 5542, 7282, 5787, 8177, -9691, 10544, 11993, 14066, 15007, 15422, 14483, 13605, 12772, 11826, 10986, 10141, 9496, 8808, 8372, 7383, 7053, 5537, 4133, 3696, 3806, 3509, 2472, 3344, 2227, -3734, 2298, 3505, 2677, 3438, 3752, 4134, 4190, 5805, 4617, 8262, 10224, 11527, 13966, 17479, 19149, 19386, 17375, 15582, 14054, 12554, 11201, 10019, 9088, 8205, -7643, 6453, 5706, 4200, 1901, 2624, 1020, 1277, 942, 796, 514, 312, 1000, 690, 1365, 1811, 2415, 2763, 3014, 4668, 6291, 8927, 11871, 14059, 16425, -17679, 19238, 20683, 22634, 22907, 21192, 20713, 19520, 18133, 16298, 14420, 12830, 10390, 8740, 6224, 3100, 3301, 2099, 1584, 953, 724, 728, 921, 1378, 1172, -1643, 1755, 2623, 2764, 3797, 5207, 6590, 10051, 14293, 16025, 18893, 20560, 21734, 21339, 22490, 21807, 19985, 19367, 18199, 16791, 14850, 13157, 11995, 10124, 9208, -6573, 4648, 3961, 3013, 2571, 1879, 1240, 1107, 1027, 907, 1231, 1332, 2661, 2866, 4851, 5215, 7138, 7325, 13113, 18499, 20118, 21868, 20942, 20129, 19725, -19905, 20551, 21138, 19921, 18204, 16176, 13771, 11762, 10609, 8506, 7696, 5582, 4640, 4245, 3661, 2920, 2491, 2023, 1435, 1528, 2154, 1479, 1576, 1995, 2091, -5050, 4548, 7435, 8750, 15365, 19235, 20171, 19597, 20328, 21710, 23327, 22957, 22005, 20076, 19117, 17646, 15549, 14172, 12197, 9629, 7822, 7024, 6057, 3648, 4428, -3953, 3004, 2520, 1678, 1868, 1456, 3886, 2377, 1744, 3009, 2447, 5241, 4292, 7393, 9876, 16023, 20166, 21255, 21096, 21373, 21607, 22510, 21260, 20825, 20470, -18588, 16585, 14646, 11814, 9735, 8138, 8693, 9212, 8586, 4983, 6038, 3688, 3483, 3842, 2961, 1878, 2531, 1661, 2814, 3171, 4362, 4409, 4330, 5159, 9876, -7759, 14596, 17666, 17591, 18050, 18916, 19240, 19096, 18308, 17298, 16336, 15077, 13805, 12455, 11058, 9956, 9261, 10052, 11022, 8363, 5760, 7119, 5258, 4886, 3769, -2717, 2491, 2057, 4954, 3517, 3594, 4350, 4646, 6316, 6646, 9739, 9512, 12954, 15294, 15573, 17054, 17050, 17209, 17373, 16493, 15692, 14820, 13713, 12578, 11132, -10921, 10433, 9951, 9446, 10293, 8896, 6085, 5795, 5485, 5332, 3244, 5091, 2780, 6170, 2722, 4969, 3187, 3995, 5156, 5772, 6171, 9170, 4788, 13078, 13160, -13360, 13825, 14166, 14646, 15219, 14723, 14353, 13964, 13451, 12957, 12221, 12021, 11705, 11560, 11265, 11174, 10873, 4251, 8668, 8645, 8175, 7235, 8834, 9150, 9202, -7833, 9457, 9972, 8450, 9225, 8179, 8402, 11178, 9639, 13753, 12275, 12794, 12819, 12994, 13099, 13320, 13046, 12880, 12690, 12542, 12408, 12250, 12251, 12204, 12135, -12089, 11674, 13093, 8964, 6604, 1330, 10020, 6755, 1945, 1911, 2014, 2728, 2193, 2240, 2477, 6885, 10849, 2122, 6723, 13891, 5005, 6121, 4339, 4957, 4794, -4802, 4707, 4612, 4379, 4421, 4402, 4429, 4448, 4460, 4477, 4415, 4416, 4438, 4503, 4659, 4111, 5907, 6791, 8537, 5255, 6558, 8183, 8218, 8138, 7949, -8066, 8142, 8125, 6606, 5088, 8481, 7081, 8529, 5782, 5726, 5740, 5552, 5192, 4792, 4292, 4519, 4689, 4931, 5041, 5074, 5068, 4842, 4795, 4801, 5022, -5014, 5081, 7340, 5484, 5303, 5427, 5580, 4722, 4735, 4781, 5328, 4623, 4304, 5174, 5212, 6049, 6229, 5565, 7756, 7564, 6798, 7061, 6532, 5661, 4977, -3862, 4223, 4339, 4598, 4727, 4750, 4762, 4400, 4405, 4497, 5003, 4901, 5527, 5806, 5436, 4892, 4643, 4830, 3973, 4712, 3939, 4898, 3836, 4478, 4579, -5130, 5662, 6183, 6396, 8859, 8794, 7904, 8035, 6968, 5112, 3703, 2329, 3620, 4617, 5501, 5924, 6013, 5854, 5129, 4881, 4821, 5257, 5286, 5474, 5391, -4100, 3844, 3134, 2695, 2172, 2177, 2157, 2397, 2271, 2491, 3275, 4128, 4986, 5557, 6837, 10202, 10477, 10680, 10743, 10460, 10197, 9179, 7618, 4299, 2234, -1980, 585, 262, 620, 885, 1832, 2905, 4498, 4824, 5187, 5959, 4705, 4244, 3264, 2752, 2339, 2509, 2508, 2589, 2315, 2887, 3967, 5081, 6408, 7238, -8872, 12173, 11638, 9852, 10538, 10909, 10363, 9589, 9658, 7417, 6496, 6416, 5169, 4394, 3996, 4456, 4858, 4969, 6238, 6324, 6914, 6312, 4952, 4101, 3162, -2558, 2034, 2109, 2605, 3977, 3828, 4526, 5517, 6231, 6970, 8860, 9952, 12795, 11036, 8086, 8572, 8174, 11474, 13472, 12939, 12016, 9345, 5618, 3945, 3284, -3679, 4820, 5760, 6061, 7304, 7442, 7908, 7323, 6607, 5804, 4588, 4008, 4178, 4772, 5018, 7049, 4677, 4755, 5434, 7081, 7075, 9474, 9484, 12564, 8722, -5753, 8122, 12921, 12019, 10306, 8040, 7289, 6084, 5356, 4377, 3989, 4459, 4435, 5225, 6657, 7603, 7893, 8027, 8654, 7740, 7207, 6379, 5535, 5194, 3559, -4883, 9885, 5701, 5243, 5727, 7009, 6975, 9550, 10247, 10165, 5067, 3960, 5944, 7857, 8825, 8583, 6185, 5343, 3889, 3071, 3373, 4099, 4931, 6646, 7880, -8734, 7795, 6923, 7282, 9024, 7404, 7750, 6877, 5761, 5641, 5849, 6022, 8069, 6285, 6164, 5417, 6924, 8277, 9321, 7285, 12315, 6027, 4111, 6501, 7760, -8424, 8277, 7380, 7516, 7594, 7579, 7104, 7173, 7633, 8330, 8723, 8624, 7799, 6167, 7495, 9541, 7052, 7605, 6792, 6663, 6692, 6897, 7279, 5375, 6843, -6886, 6407, 6901, 6660, 8101, 7314, 9927, 7301, 5804, 7121, 6878, 6869, 6904, 7187, 7641, 8042, 8542, 9122, 9665, 10417, 9963, 9856, 9678, 9108, 7123, -7626, 9593, 8881, 8321, 7834, 9036, 7028, 8785, 5934, 8839, 6957, 8936, 8229, 8853, 9492, 10619, 8839, 14131, 5626, 5665, 5924, 5849, 6006, 5992, 5947, -6228, 6516, 6775, 7192, 7605, 8332, 7945, 7690, 7296, 7073, 6546, 6507, 12955, 7815, 7628, 7656, 8107, 5892, 5777, 6058, 7461, 5951, 5202, 6759, 6716, -8412, 8804, 6342, 8176, 2882, 4739, 4358, 4426, 4438, 4475, 4480, 4673, 4830, 4998, 5128, 5226, 5423, 5148, 5006, 4848, 4731, 4943, 3153, 8441, 10865, -15606, 6690, 10276, 14522, 14660, 14473, 13824, 14415, 14507, 14230, 10359, 6085, 15291, 11186, 4435, 2370, 1878, 1988, 1919, 1870, 1824, 1843, 1918, 2116, 2220, -2299, 2328, 2316, 2332, 2372, 2393, 2384, 2359, 2289, 2241, 2233, 2021, 1875, 1707, 2053, 1829, 1640, 1716, 1749, 1809, 1638, 1584, 1592, 1775, 1976, -1731, 1807, 1876, 1643, 1594, 1454, 1366, 1393, 1694, 2300, 2602, 2766, 2711, 2653, 2672, 2799, 2908, 2925, 2852, 2678, 2561, 2449, 2353, 2469, 2431, -2309, 2276, 2225, 2444, 2456, 2469, 2254, 2156, 2020, 1910, 1918, 2194, 2063, 1926, 1109, 668, 365, 160, 324, 806, 2080, 2659, 3087, 3103, 3080, -3173, 3430, 3584, 3579, 3367, 3071, 2822, 2658, 2832, 2708, 2614, 2461, 2375, 2063, 2531, 2706, 2769, 2167, 1865, 1947, 1825, 1929, 2346, 2084, 1525, -312, -275, -593, -743, -197, 912, 2870, 3547, 3771, 3428, 3147, 3188, 3619, 3993, 4052, 3822, 3423, 3126, 3018, 3458, 3189, 3013, 2765, 2625, 2204, -2542, 2490, 2803, 1789, 1427, 1507, 1260, 1653, 2307, 1584, 3927, 1601, -1261, -2669, -4645, -6020, -6274, -4936, -2254, 254, 1728, 3314, 4227, 4643, 4783, -4671, 4609, 3617, 3348, 3595, 3455, 3370, 3178, 2818, 2434, 1633, 2485, 2704, 2721, 2489, 2756, 3535, 3505, 3944, 4048, 4007, 82, -2491, -4824, -6032, --9538, -9580, -9597, -9430, -7936, -6317, -4687, -2554, -329, 1893, 3151, 3944, 4291, 3643, 3349, 3661, 3715, 3363, 3020, 2829, 2562, 1903, 2669, 2833, 3654, -2963, 2863, 1893, 2055, 964, 684, -688, -2898, -5367, -8217, -9665, -11863, -13621, -15279, -15280, -14052, -11476, -7711, -4831, -2387, -603, 279, 1523, 3045, 3903, -4043, 4447, 4696, 4172, 3572, 3465, 2967, 1724, 1724, 2367, 4739, 2673, 2103, 2036, 1696, -182, -313, -2246, -5313, -7662, -9173, -11637, -15129, -13940, -12839, --11536, -10478, -8700, -6647, -4447, -2418, -892, 1227, 2500, 2984, 3705, 3559, 3336, 3242, 1900, 1692, 1958, 2049, 1939, 3412, 3277, 769, 2348, 2495, 822, -1285, -249, -896, -3284, -5724, -6106, -8665, -11071, -12076, -11399, -9897, -7003, -4956, -2908, -1374, -228, 629, 1378, 1334, 1505, 1844, 2128, 1661, 577, 841, -404, 948, 997, 1103, 1214, 2274, 1879, 654, 662, 408, 202, -749, -1242, -2222, -3415, -6208, -5963, -6810, -8553, -9283, -9128, -8172, -6422, -4940, -3406, --1833, -689, 103, 777, 297, 72, -106, -518, -528, -940, -1383, -808, -720, -519, 94, 864, 560, 287, -342, -237, -57, 93, -706, -1615, -2723, --3786, -5708, -5925, -5776, -6662, -7196, -6723, -6440, -6392, -5836, -5334, -4799, -4716, -4521, -4237, -4166, -4156, -4142, -3883, -3225, -3227, -3141, -2599, -2106, -1540, --1271, -888, -938, -814, -1136, -922, -1343, -1173, -2211, -2822, -3884, -4521, -5684, -3919, -3899, -4214, -4384, -4687, -4955, -5228, -5206, -5257, -5255, -5306, -5357, --5515, -5180, -4864, -4513, -4215, -3761, -3695, -4947, -3345, -3244, -3036, -2831, -2013, -2013, -2272, -2533, -2224, -1863, -2224, -2622, -3413, -3731, -3363, -4718, -2617, --3222, -3222, -3265, -3374, -3452, -3569, -3596, -3649, -3708, -3734, -3748, -3824, -3610, -3474, -3319, -3217, -3145, -2535, -4622, -5299, -5892, -3753, -4891, -5436, -5505, --5377, -5258, -5413, -5510, -5394, -4909, -3652, -5990, -5496, -3112, -526, 328, -829, -447, -557, -545, -812, -937, -1085, -956, -862, -735, -644, -590, -573, --583, -587, -592, -606, -491, -813, 310, 914, 2151, 40, 902, 2024, 2119, 2123, 1965, 2058, 2054, 1997, 931, -23, 1965, 983, 1287, -586, -390, --453, -511, -1214, -1653, -2023, -1920, -1665, -1224, -879, -674, -649, -661, -689, -727, -728, -725, -530, 1193, 165, 293, 432, 711, 336, 516, 626, -945, 588, 336, 603, 334, 624, 655, 86, 473, -642, -406, -477, -600, -2064, -2769, -3513, -3209, -2630, -1862, -1262, -917, -902, -906, -965, -975, --945, -992, -196, 425, 639, 437, 517, 1099, 666, 1703, 1190, 2020, 1401, 1796, 1474, 1020, 862, 1005, 579, 1368, -60, 447, 497, 182, -2276, --3899, -5092, -4940, -3896, -2352, -1231, -611, -581, -736, -810, -864, -986, -985, -105, 1135, 642, 1637, 1254, 1314, 1067, 1982, 2507, 2410, 1995, 1761, -1807, 1119, 1134, 1528, 1451, -4513, -5744, -4938, -4801, -4197, -2921, -1954, -1748, -2709, -3701, -3716, -3842, -3580, -2912, -2621, -2437, -2658, -1514, -1322, -704, -965, 390, 1158, 1328, 1872, 1813, 2351, 2313, 2141, 2058, 1686, 1222, 473, -249, -1671, -3239, -4445, -4600, -3871, -3028, -549, -1189, -913, 145, 829, -1302, 1372, 1534, 1201, 405, 387, 260, -95, -179, -756, -465, 469, 898, 1274, 1336, 1742, 1853, 2605, 2793, 2547, 1424, 560, -286, -662, -1449, --2180, -3176, -3170, -3058, -882, -20, 1529, 3212, 5223, 7524, 8168, 8357, 7676, 7019, 6176, 5229, 5177, 4323, 2929, 899, -531, -695, -1073, -1246, -375, -197, 917, 814, 2791, 2928, 1099, 1835, 1493, 175, -68, -454, -1396, -1921, -645, 464, 2427, 3338, 3548, 3962, 5190, 7677, 8659, 9521, 9474, 8914, -7950, 6850, 5003, 3451, 2447, 1166, 54, -507, 97, 16, 57, 233, 519, 301, 2436, 2850, 557, 2277, 1730, 63, 26, -108, -679, -713, 2112, -3069, 4381, 4794, 3915, 3402, 3247, 3508, 3970, 4463, 4727, 5000, 4869, 4351, 4036, 3205, 1947, 699, 37, 455, 1026, 885, 1232, 1319, 1541, 1823, -2025, 2238, 2478, 2337, 2023, 1733, 1437, 914, 799, 1280, 3044, 3181, 3498, 3738, 3443, 3100, 2699, 2252, 1929, 1666, 1358, 1008, 806, 684, 906, -1043, 1328, 1640, 1646, 2129, 2719, 2422, 2518, 2691, 2570, 2247, 2204, 2096, 2365, 1891, 1536, 1128, 1708, 2178, 2348, 2738, 2856, 3019, 2999, 3260, -3500, 3243, 3054, 2940, 2761, 2628, 2545, 2669, 2730, 2697, 2994, 3321, 3654, 3833, 3807, 3951, 3872, 3760, 3593, 3135, 2797, 2476, 2344, 2205, 2166, -1835, 1785, 1430, 1794, 1933, 2348, 2563, 3798, 3411, 3322, 3482, 3543, 3684, 3834, 3968, 4045, 4116, 4146, 4207, 4282, 4382, 4398, 4380, 4335, 4302, -4207, 4405, 4360, 3831, 3798, 3616, 3458, 3184, 3036, 3129, 3163, 2944, 2632, 2759, 2877, 3198, 3292, 3138, 4076, 3020, 3238, 3276, 3293, 3347, 3379, -3423, 3470, 3530, 3600, 3646, 3686, 3745, 3669, 3627, 3585, 3586, 3541, 3387, 4343, 4538, 4269, 3923, 4307, 4169, 4193, 4113, 4025, 4096, 4136, 4041, -4071, 3596, 4103, 4297, 3611, 575, -257, 737, 481, 552, 444, 591, 675, 889, 702, 645, 591, 605, 614, 658, 629, 605, 551, 538, 438, -723, -307, -819, -1762, -31, -708, -1459, -1470, -1409, -1331, -1333, -1362, -1435, -657, 167, -1479, -774, -942, 346, 410, 290, 62, 397, 686, 1290, -939, 794, 614, 618, 667, 804, 787, 717, 578, 504, 483, 352, -1003, -87, -113, -209, -234, 441, 457, 491, 136, 670, 768, 125, 268, --67, -13, 366, -300, -104, 414, 270, -53, 879, 1394, 2674, 1641, 1162, 759, 759, 849, 1131, 1031, 912, 599, 440, 388, -116, -481, -501, --366, -361, -341, 619, 232, 689, 103, 871, 520, -35, 67, 77, 87, 10, -440, -607, -287, -840, -1483, -214, 1003, 3042, 1786, 866, 91, -89, 387, 1018, 1093, 893, 469, 384, 277, -169, -628, -242, -588, -225, 191, 747, 1128, 1575, 1398, 1715, 1610, 705, 755, 645, 659, 286, --209, 1259, 1672, 2618, 4618, 5149, 5247, 5068, 5080, 5287, 4858, 4814, 4224, 3246, 2520, 1934, 1386, 325, -5, -386, -1074, -252, -76, 242, 734, -1388, 1819, 1744, 1054, 1103, 631, -162, -190, -461, -397, -311, -400, 92, 751, 258, -193, 694, 1675, 2185, 2808, 3433, 4083, 4184, 4149, 4233, -2543, 996, -653, -922, -548, -69, -435, -325, -9, 361, 945, 1025, 1914, 2115, 1167, 900, 515, 311, 338, 450, 114, 209, 325, 355, -315, --590, 266, -2168, -2946, -3164, -2926, -2688, -2416, -1979, -1319, -249, -671, -820, -1174, -1088, -1075, -838, -781, -637, -932, -737, -567, -765, 1275, 1914, --818, 2288, 1940, -262, 198, 372, 198, 402, -531, -1310, -1845, -2073, -1157, -3591, -5076, -6746, -6644, -6616, -6442, -5982, -5662, -5349, -4673, -3855, -3062, --2579, -2035, -1242, -1277, -1184, -793, -526, 128, 665, 1063, 1133, -893, 1113, 1283, 784, 727, 189, 75, -74, -2041, -3011, -2642, -2333, -1854, -3170, --4083, -5005, -5009, -5210, -5497, -5814, -5786, -5405, -4915, -4048, -3073, -2449, -1805, -1549, -1173, -990, -757, -612, -563, -334, -180, -67, 400, 889, 770, -175, -49, -268, -537, -1612, -1680, -1886, -1791, -2101, -2638, -3038, -3242, -3236, -3151, -3016, -2736, -2564, -2491, -2475, -2596, -2608, -2785, -2778, -2657, -2383, --2306, -2137, -1629, -1476, -960, -284, 225, 483, -253, 273, 324, 145, -751, -1400, -1394, -1831, -1450, -1641, -2105, -2650, -3152, -3086, -3116, -3196, -3124, --3073, -3045, -2951, -2790, -2490, -2629, -2762, -2950, -2978, -3162, -2969, -2267, -2120, -1893, -1519, -910, -1040, -512, -737, -113, -217, -104, 12, -249, -420, --736, -1125, -2390, -2903, -2816, -2881, -2926, -3029, -3136, -3241, -3275, -3307, -3323, -3339, -3387, -3412, -3428, -3392, -3351, -3269, -3191, -3272, -2062, -2484, -2470, --2313, -2020, -2068, -2037, -2168, -2052, -2166, -1994, -1977, -2133, -2240, -2386, -2543, -2810, -2670, -2642, -2705, -2713, -2758, -2788, -2826, -2860, -2901, -2944, -2984, --3014, -3057, -2985, -2940, -2899, -2901, -2806, -2956, -2926, -2710, -1726, -2790, -2589, -1798, -1845, -1838, -1902, -1907, -1970, -1960, -2515, -2680, -1940, -2638, -2962, -405, 1112, 248, 534, 515, 662, 452, 394, 389, 366, 345, 321, 275, 237, 181, 181, 182, 204, 225, 302, 24, 982, 1420, 2130, 795, -1432, 2177, 2118, 2063, 1907, 2092, 2101, 1932, 1393, 688, 2030, 1513, 1608, 537, 586, 770, 1136, 733, 624, 564, 544, 464, 360, 209, 56, --105, -137, -107, -44, 46, 43, 94, 1313, 554, 663, 744, 947, 951, 790, 826, 940, 852, 636, 589, 674, 894, 779, 467, 1235, 1221, -1114, 1397, 2045, 966, 635, 348, 453, 457, 333, 46, -244, -550, -628, -625, -505, -317, -316, -47, 437, 476, 468, 463, 852, 1192, 1133, -718, 912, 988, 1175, 344, 723, 722, 702, 831, 766, 918, 1002, 1637, 2752, 1440, 968, 555, 897, 885, 691, 180, -381, -965, -1113, -1022, --863, -674, -640, -540, 121, -263, 153, -253, 25, 845, 854, 1063, 529, 1346, 961, -239, 225, 295, -6, 221, 3175, 2627, 2816, 2521, 1848, -1533, 846, -874, -969, -1291, -1233, -1646, -1912, -2101, -2222, -2324, -2264, -1564, -1270, -731, 304, -115, 218, 215, 650, 1413, 1014, 1017, 924, 939, -947, 1159, 1321, 1600, 2112, 3006, 135, 159, -1183, -746, 932, 1326, 1268, 144, -220, -1400, -2314, -3452, -4561, -5841, -5741, -4946, -3330, -2843, -2492, --1771, -773, -369, -132, -96, 265, 1235, 1157, 1508, 1164, 2017, 2107, 1791, 1091, 700, 639, 300, 299, 227, -179, 80, 195, 1505, 997, -1406, --843, -657, -96, -252, -687, -1567, -1937, -2099, -1753, -1352, -954, -672, -63, 259, 829, 693, 1154, 2455, 1587, 1388, 154, 1635, 1327, 827, 837, -622, 738, 670, 531, 1156, 258, 345, 1386, 3039, 3507, 2580, 1856, 997, 1067, 215, -22, 0, -53, -235, -475, -830, -844, -806, -672, -81, -141, 52, 380, 1193, 473, 292, -261, 709, 1027, 1605, 761, 538, 542, 591, 1007, 1451, 820, 978, 2295, 2923, 2840, 1927, 1077, 773, 1189, -902, 735, 402, 182, -148, -186, 40, 325, 527, 42, 226, -90, 376, 844, 1226, 728, 630, -87, 559, 783, 1234, 932, 770, 670, 1244, -120, 244, 950, 1739, 2521, 2074, 1726, 1257, 489, -180, -683, -749, -732, -773, -467, -141, 548, 971, 1256, 883, 806, 1259, 1017, 925, 616, -469, 299, 304, 919, 689, 717, 698, 959, 990, 439, 409, 1450, 1606, 1752, 1931, 2168, 1723, 1379, 1042, 946, 844, 670, 565, 385, 55, -439, 726, 1057, 1252, 1790, 1782, 1006, 976, 870, 960, 703, 1256, 810, 1316, 829, 949, 682, 685, 630, 619, 605, 1072, 887, 1737, 1570, -1494, 1431, 1388, 1373, 1304, 1306, 1267, 1246, 1200, 1187, 1104, 1238, 1307, 1407, 1450, 1503, 1635, 345, 1178, 1242, 1236, 1004, 1271, 1314, 1414, -1245, 1505, 1523, 1411, 1485, 1366, 1369, 1574, 1376, 1629, 1440, 1454, 1401, 1391, 1371, 1353, 1382, 1405, 1429, 1445, 1460, 1463, 1467, 1465, 1468, -1504, 1451, 1727, 1344, 1051, 86, 1438, 1091, 265, 295, 331, 455, 440, 491, 567, 1187, 1549, 424, 1121, 1561, -944, -1295, -927, -1085, -1119, --1175, -1060, -1037, -1130, -995, -953, -908, -929, -924, -937, -846, -796, -719, -770, -801, -617, -1159, -1351, -1572, -939, -1183, -1331, -1414, -1417, -1368, --1425, -1468, -1493, -1291, -1007, -1555, -1418, -1609, -1518, -1676, -1767, -1829, -1518, -1466, -1700, -1352, -1233, -1138, -1206, -1192, -1186, -935, -776, -571, -706, --680, -663, -1346, -864, -899, -687, -636, -353, -501, -587, -647, -604, -561, -798, -851, -1047, -1111, -1102, -1422, -1803, -2337, -2551, -2873, -2291, -2135, --2576, -1795, -1643, -1421, -1474, -1429, -1429, -898, -597, -228, -501, -443, -522, -876, -763, -565, -139, 11, 514, -36, 22, -150, -6, -249, -427, --524, -759, -911, -1138, -1888, -2847, -3697, -3929, -4168, -3072, -2869, -3557, -2409, -2062, -1907, -2040, -1987, -1901, -1016, -452, 138, -247, -281, -361, -972, --499, -602, 16, 407, 1160, 742, 615, 542, 763, 362, -297, -423, -658, -953, -1353, 2004, 2323, 1645, 758, -1163, -2057, -2620, -1916, -2089, -1734, --980, -875, -676, -841, -603, -512, -102, -407, -159, -398, -1007, -288, -513, 85, 277, 1000, 237, 437, 1177, 1054, 1199, 1283, 849, 810, 1156, -1584, 1369, 1766, 2671, 2638, 1056, 3268, 3464, 3226, 1152, 326, 298, 75, 271, 459, 991, 818, 338, 260, 486, 47, -355, -234, -172, 345, -622, 1723, 985, 813, 464, 1678, 1645, 1070, 1561, 1784, 1456, 1463, 997, 1007, 649, -274, -2155, -1193, -184, 2121, 676, 269, 231, 119, 137, -78, 209, 124, -173, 429, 689, 307, 192, 140, 3, -88, 407, 2822, -33, -595, 47, 693, 1158, 2645, 557, 99, 839, 818, 528, 199, -323, -335, -2774, -2017, -2175, -1842, -2856, -3171, -3252, -1908, -656, 353, 829, 941, 690, 985, 1149, 1098, 889, 755, 807, 778, 1085, 2577, 705, -207, 627, -4, 351, 1648, 708, 421, 375, 349, -52, -399, -904, -1649, -3283, -1874, -1540, -1574, -1953, -2490, -3132, -2746, -2157, -1245, -488, 124, -429, 516, 520, 580, 650, 692, 852, 671, 487, 547, 810, 740, 646, 486, 395, 393, 348, 422, 305, 18, -200, -567, -1610, -2180, -2151, --1345, -1045, -1153, -903, -724, -506, -450, -275, 5, 491, 588, 67, -259, -346, 174, 323, 122, 274, 429, 561, 501, 598, 682, 435, 850, -878, 745, 657, 520, 577, 248, -1045, -1421, -1180, -995, -919, -857, -734, -614, -477, -399, -297, -147, 45, 279, 94, -6, -72, -203, -640, --645, 71, 106, 265, 332, 619, 481, 659, 253, 528, 167, 160, -54, -138, -278, -362, -732, 503, -80, -147, -289, -383, -466, -560, -655, --622, -559, -496, -419, -371, -259, -320, -345, -391, -385, -372, -415, 511, 107, 199, 250, 472, 416, 382, 352, 482, 366, 397, 534, 406, -417, 374, 163, -184, -253, -204, -245, -258, -285, -308, -349, -331, -337, -343, -347, -346, -337, -326, -312, -305, -314, -269, -431, -222, -55, -448, -159, 20, 449, 436, 424, 345, 368, 334, 293, -51, -218, 286, -54, -204, 209, 300, 82, 136, 147, 151, 137, 135, 115, 171, -164, 83, 130, 133, 132, 139, 150, 156, 184, 207, 116, 422, 528, 572, 422, 570, 654, 612, 583, 553, 575, 582, 614, 515, 353, -492, 394, 88, 72, 139, 186, 154, 61, 21, -15, 152, 173, -21, 122, 143, 130, 116, 127, 129, 227, 216, 219, 542, 338, 354, -518, 599, 540, 446, 404, 444, 325, 320, 506, 476, 471, 376, 131, -385, -287, -6, -11, -15, -149, -173, -328, 86, 105, -304, -57, --56, -74, -73, -30, 57, 214, 243, 307, 485, 481, 361, 720, 860, 759, 710, 520, 574, 423, 521, 665, 572, 381, 240, -114, -842, --638, -51, 131, 89, -34, -334, -631, 15, 305, -264, 157, 152, 19, -135, -91, 42, 274, 233, 280, 458, 338, 316, 740, 969, 1257, -799, 501, 503, 554, 488, 656, 743, 534, 377, -282, -361, -434, -346, -964, -1434, -2525, -2042, -58, -1046, -1526, -2124, -1652, -1244, -725, -237, --151, -704, 115, 383, 916, 889, 496, 590, 696, 749, 1137, 802, 764, 941, 1101, 963, 332, -218, -476, -467, -617, 2782, 2474, 3118, 3060, -2967, -501, -1876, -817, -1235, -1251, -2089, -2099, -2062, -1763, -1370, -913, -666, -407, -631, -195, 386, 397, 281, 541, 625, 1306, 649, 479, 427, -1033, 1135, 1733, 1555, 1718, 2323, 2525, -79, -284, 464, 313, -234, -498, -68, 1046, 1304, 965, -402, -802, -1413, -1997, -2219, -2338, -2350, -1846, --1293, -622, -71, 217, 647, 822, 1182, 2515, 873, 81, 427, 81, 733, 2570, 1124, 552, -318, -350, 200, 132, 261, 561, 1093, -270, -431, -463, 1140, 2155, 2910, 2749, 2283, 1684, 1292, 984, 490, 683, 457, 136, 399, 311, 334, 784, 751, 1142, 374, 147, 1021, 416, 476, 870, -575, 753, 485, 384, 308, 487, 555, 451, 437, -538, -230, 1273, 1313, 1646, 2075, 1837, 1543, 1097, 865, 541, -68, 278, 74, -280, -127, --211, -77, 284, 506, 689, 610, 427, 188, 345, 684, 1189, 705, 417, 358, 343, 827, 814, 975, 781, 115, 189, 362, 1094, 777, 828, -864, 1039, 937, 646, 131, -19, 244, 520, 615, 439, 309, 419, 456, 503, 553, 599, 411, 386, 426, 301, 276, 477, 319, 423, 545, -715, 742, 823, 610, 362, 157, 537, 777, 1103, 764, 522, 213, 158, 97, 76, 49, -35, -146, 44, 451, 521, 166, 385, 433, 429, -356, 455, 386, 475, 353, 645, 800, 1015, 1000, 987, 987, 883, 192, 404, 555, 760, 899, 1017, 1105, 1263, 1103, 994, 850, 697, 524, -319, 395, 467, 523, 543, 548, 580, 68, 358, 345, 379, 330, 412, 336, 313, 228, 168, 20, -35, -14, 60, 130, 226, 835, 784, -826, 877, 931, 974, 1016, 1092, 1021, 986, 952, 909, 874, 806, 832, 828, 840, 850, 830, 929, 849, 775, 529, 855, 788, 658, 640, -626, 627, 613, 623, 585, 714, 767, 599, 765, 1092, -622, -730, -588, -630, -680, -806, -771, -783, -880, -688, -638, -666, -643, -607, -507, --545, -541, -546, -522, -523, -476, -670, -706, -687, -547, -626, -656, -631, -624, -630, -671, -671, -607, -626, -569, -639, -730, -692, -641, -668, --839, -1199, -1212, -1263, -1453, -983, -839, -924, -899, -808, -526, -589, -570, -573, -498, -452, -450, -657, -504, -428, -288, -244, -333, -250, -313, --397, -420, -367, -242, -276, -320, -310, -545, -750, -798, -899, -1126, -1819, -1746, -1819, -2210, -1371, -1091, -1207, -1109, -927, -376, -516, -436, -473, --322, -284, -295, -478, -377, -171, 105, 143, -56, 169, 137, 13, -122, -139, 126, 31, -33, -66, -627, -389, -446, -546, -1096, -2328, -2427, --2527, -3014, -1862, -1448, -1632, -1607, -1227, -368, -477, -441, -464, -175, -16, 49, -168, -26, 106, 652, 910, 810, 849, 617, 561, 308, 307, -696, 770, 634, 665, -85, -1999, -1182, -2006, -1862, -1166, -1792, -1967, -2604, -1610, -1207, -1061, -995, -1013, -764, -646, -206, 160, -109, -281, -482, --565, -281, -24, 547, 536, 210, 877, 942, 408, 968, 611, -390, -68, -281, -934, -1915, 2287, 2355, 1474, 383, -346, -2054, -2838, -3890, -1336, --255, -343, 32, 169, 483, -66, -386, -742, -454, -221, -631, -839, -440, -198, 592, 848, 904, 450, -4, 146, 192, 620, 1652, 606, 500, -1154, 1781, -783, 57, 448, 1882, 4747, 3596, 3184, 2166, 1637, 881, 79, -534, -904, -706, -700, -434, -219, -632, -811, -595, -550, -340, -781, -949, 853, -718, 115, -103, 121, -373, 189, 1208, 1800, 1889, 284, -378, 378, 387, 231, -259, -227, -627, 146, 1558, 2658, 2819, 1571, 1249, -557, 33, -743, -900, -519, -686, -595, -303, -377, -106, -14, 1145, 1129, 199, 699, 557, 638, 900, 981, 288, 421, 434, 275, 462, 154, -125, 289, 328, 328, -175, -292, -325, -4, 108, -391, 322, 618, 1028, 592, 458, 460, -162, -259, -158, 4, 202, 156, 76, 124, 339, -131, 72, 316, 181, 338, 440, 818, 790, 296, 184, 11, 52, 29, -119, -215, -798, -824, -610, 214, 324, -267, -372, -292, 84, 398, -349, -147, -87, -151, -160, 48, -39, 40, 118, 239, 479, 411, 296, 79, 155, 186, 207, 137, 43, -125, 4, 163, 144, -33, -173, --286, -329, -412, -636, -396, -126, 271, 62, -169, -449, -304, -87, 128, 156, 2, 126, 373, 250, 218, 129, 126, -34, 219, 318, 576, -405, 325, 200, 187, 238, 244, 179, -121, -266, -232, -221, -231, -236, -224, -219, -40, 52, 182, 295, 485, 643, 598, 507, 447, 393, -373, 321, 505, 186, 112, 70, 31, -139, -153, -222, -208, -253, -193, -239, -173, -196, -233, -251, -346, -474, -441, -454, -449, -458, -464, --496, -450, -413, -383, -318, -274, -197, -238, -242, -259, -269, -267, -344, -203, -97, 177, -343, -205, 26, 12, 0, -28, -28, -50, -36, --200, -356, 12, -227, -657, 174, 110, 123, 170, 211, 227, 208, 184, 187, 116, 128, 238, 187, 176, 133, 140, 131, 108, 143, 143, -98, 183, 202, 164, 232, 218, 115, 155, 150, 108, 123, 133, 189, 180, 145, 108, 96, -77, 166, 272, 340, 330, 307, 267, 294, -54, 90, 420, 331, 276, 125, 121, 102, 50, 138, 132, 53, 165, 204, 316, 313, 289, 169, 242, 233, 145, 153, 177, 298, 172, -102, 105, -52, -365, -92, 221, 384, 500, 601, 424, 492, -113, -24, 605, 390, 337, 64, 55, -10, -117, 67, 64, -99, 104, 188, -392, 394, 361, 93, 321, 239, 109, 82, 120, 429, 91, -46, -32, -324, -520, 91, 453, 628, 754, 765, 731, 866, -104, -48, 1044, -775, 557, 61, 19, -40, -229, 35, 33, -209, 100, 230, 525, 675, 615, 202, 694, 635, 265, 215, 229, 691, 269, 28, 104, -526, --1385, -1488, -1901, -1445, -565, 321, 71, -1120, -816, -689, 64, -108, 16, 51, -362, -556, -451, -323, -338, -332, -129, -148, -45, 285, 499, -340, 632, 673, 307, 649, 215, -274, -330, -427, -795, -1119, 220, -146, -1515, -2080, -2923, -1651, -1226, -2017, -2050, -2057, -855, -1314, -1480, -1488, --1535, -1000, -70, -311, -238, 238, 232, 376, 503, 781, 752, 427, 281, -23, 168, -113, 355, 847, 644, 124, -753, -158, 1073, 2037, 3000, -3336, 2579, 2822, 1013, -2331, -1470, -1309, -805, -975, -796, -364, -620, -622, -390, -513, -579, -530, -513, -139, 102, 1347, 1153, -487, 323, 137, -137, 46, 277, -233, 1505, 2224, 1916, 1399, 103, 58, 195, 420, 510, 1534, 1668, 273, 1097, 501, -217, -1545, -2359, -2564, -2373, -2085, -1648, --1309, -992, -630, -230, 112, 15, 655, 614, -285, 456, 459, 155, 670, 977, 829, 915, 616, 43, 114, 497, 525, 503, 725, 1165, 902, -307, -847, 334, 1075, 2045, 1676, 1434, 982, 837, 577, 541, 529, 546, 540, 372, 440, 368, 799, 856, 489, 218, 103, 3, 201, 226, -234, 619, 783, 633, 625, 470, 608, 891, 1082, 1065, 765, 389, -260, -432, -342, 394, 53, -278, -756, -1021, -823, -135, -46, 95, 32, --147, 31, 124, 261, 297, 284, 388, 408, 496, 628, 739, 708, 699, 578, 416, 396, 573, 690, 635, 587, 559, 326, 128, -57, 94, -171, 248, 402, 599, 761, 710, 558, 382, 332, 450, 359, 228, 390, 502, 495, 412, 488, 353, 434, 300, 307, 216, 229, 274, 311, -322, 460, 118, 241, 122, 27, -49, -129, -182, -290, -278, -284, -289, -261, -258, -216, -185, -102, -27, 37, 55, 122, 75, 182, 184, -164, 180, 264, 328, 372, 378, 499, 576, 603, 516, 407, 367, 359, 105, 244, 182, 170, 138, 117, 91, 60, 74, 83, 97, 93, -94, 91, 108, 114, 124, 133, 142, 194, 80, -18, -222, 157, 17, -228, -192, -161, -115, -112, -97, -58, 92, 238, -147, 22, 244, --168, -197, -190, -217, -225, -189, -179, -180, -201, -256, -254, -183, -172, -163, -181, -175, -160, -103, -142, -137, -67, -120, -119, -80, -104, --120, -118, -139, -149, -158, -157, -142, -81, -152, -170, -198, -196, -302, -360, -403, -356, -232, -180, -220, -335, -532, -529, -320, -255, -211, --245, -227, -195, -34, -144, -92, 20, -57, 54, 65, 39, 5, 11, -83, -118, -124, -120, -72, 45, -58, -155, -317, -319, -280, -346, --601, -579, -352, -316, -280, -400, -764, -799, -416, -348, -240, -306, -266, -198, 101, -120, -32, 117, 99, 249, 352, 265, 202, 298, 73, --37, -36, -56, 34, 325, 51, -121, -370, -300, -574, -547, -741, -583, -196, -182, -294, -595, -1272, -1273, -630, -434, -330, -313, -285, -186, -255, -77, 81, 294, 146, 400, 528, 507, 364, 333, 369, 419, 141, 123, 167, 648, 227, -86, -545, -656, -159, -843, -1342, -1562, -1989, --1055, -573, -346, -453, -766, -1556, -948, -706, -741, -533, -373, 47, -148, -171, -405, -249, 232, 527, 285, 387, 886, 524, 303, 222, 285, -54, 88, -400, -516, -351, -4, -1423, -1344, -1838, -1440, -485, 250, 281, 431, -1469, -1732, -900, -166, 222, -47, 214, -31, -241, -142, -77, --220, -195, -88, 227, 755, 692, -210, -53, -26, 111, -144, -4, -285, 643, 570, -264, -1009, 2888, 3440, 2746, 1791, 477, -1109, -1511, -319, --1895, -1821, -527, -353, -398, -1297, -1114, -1005, -583, -267, -100, -239, -220, 101, 772, 340, 199, -72, 83, 50, 32, 128, 284, -129, 761, -1396, 2565, 2597, 57, 12, -255, 509, 1844, 2648, 2328, 1600, -859, -1696, -937, -1014, -685, -909, -831, -966, -888, -863, -590, -287, -159, 143, -811, 337, 234, 126, 83, 151, 142, -14, 242, 941, 1133, 1060, 746, 432, 568, 579, 372, 16, -345, -45, 304, 1227, 551, 637, 1213, -823, 474, -135, -271, -239, 25, 48, 75, 213, 242, 258, 514, 744, 759, 425, 533, 611, 935, 652, 480, 360, 508, 654, 726, 652, --70, -310, -485, -344, 78, 311, 314, 239, -261, -346, -195, 443, 974, 1239, 1278, 1053, 721, 545, 430, 423, 545, 619, 636, 420, 299, -308, 426, 523, 617, 658, 699, 585, 722, 622, 434, 143, 206, 110, 265, 409, 504, 415, 406, 441, 340, 209, -19, 85, 151, 297, -335, 448, 570, 580, 490, 546, 550, 283, 98, 337, 566, 734, 597, 445, 349, 326, 338, 351, 257, 192, 148, 183, 447, 458, 413, -345, 317, 297, 254, 203, 133, 98, 61, 19, -41, -105, -101, -115, -129, -116, -89, -78, 69, 201, 312, 398, 452, 549, 549, 587, -604, 611, 609, 629, 594, 573, 518, 487, 381, 401, 372, 357, 333, 314, 303, 298, 298, 290, 282, 258, 237, 203, 220, 230, 237, -239, 244, 219, 266, 312, 380, 355, 411, 473, 457, 452, 446, 443, 436, 434, 402, 387, 419, 401, 367, 86, 46, 76, -19, -18, -42, 40, 71, 172, 75, 59, 93, 34, 26, 35, 71, 83, 75, 84, 99, 118, 157, 161, 130, 145, 134, 131, 67, 46, 33, -66, 86, 119, 115, 103, -5, 46, -147, 15, -172, -165, 32, 59, 146, 351, 128, 57, 133, 3, -26, -22, 60, 91, 64, 105, -143, 232, 319, 310, 282, 256, 217, 231, 81, 29, 21, 73, 134, 205, 194, 105, -160, -80, -249, -76, -495, -562, -178, -139, 22, -562, 135, 13, 175, -178, -218, -144, 36, 93, 54, 102, 185, 373, 513, 515, 435, 407, 366, 382, 81, -52, -58, 31, 179, 317, -259, 108, -293, -114, -596, -209, -768, -808, -80, 4, 292, 940, 245, -43, 281, -85, -227, -203, -8, 80, 31, 168, 269, 561, 825, -843, 771, 572, 475, 716, 316, 169, -28, 66, 235, 521, 400, 144, -672, -577, 449, -1301, -1067, -1320, -1521, -998, -584, -415, 926, 933, --500, -871, -1002, -600, -29, 25, -454, -250, -74, 222, 246, 266, 424, 347, 398, 607, 198, 28, 191, -26, -125, 204, -137, -226, -347, -690, -1445, -1562, -566, 220, 391, 51, -60, 248, -372, -891, -1802, -1158, -857, -394, -429, -258, 130, 20, -38, 34, 389, 554, 845, 484, -403, 198, -22, 19, 64, -65, -41, -289, 151, 142, 204, -980, 2134, 801, -403, -1825, -3595, -3187, -2555, -1237, -1342, -1255, -1957, -1078, -581, --133, 152, 49, -271, -203, -79, -120, 84, 449, 1355, -47, -370, 122, -165, 123, 36, -49, -23, -32, -7, 300, 1722, 1847, 977, 1440, -2601, 2971, 2645, 1654, 485, -441, -1480, -1519, -1471, -223, 106, -82, -295, -409, -437, -547, -590, -410, -383, -87, 879, 154, 122, 404, 4, --1, 48, -13, 115, 620, 931, 1181, 1414, 996, 478, 400, 245, 234, 222, 1079, 1880, 2401, 1834, 929, -520, -795, -949, -696, -816, -843, --936, -617, -374, -218, 13, 272, 602, 368, 275, 197, 501, 636, 719, 740, 771, 791, 580, 536, 718, 539, 387, 409, 459, 390, 260, -333, 412, 711, 917, 1061, 1052, 1068, 1070, 1302, 1217, 1170, 965, 752, 600, 513, 448, 388, 330, 537, 596, 451, 327, 282, 272, 169, -223, 475, 567, 662, 757, 602, 191, 77, 61, 18, 33, 149, 266, 348, 303, 226, 142, -16, -146, -271, -286, -303, -302, -274, -213, --233, -135, 39, 179, 194, 253, 333, 363, 322, 350, 417, 466, 506, 443, 387, 368, 286, 509, 506, 485, 480, 437, 390, 329, 289, -285, 314, 358, 386, 409, 412, 402, 380, 356, 316, 282, 237, 220, 261, 297, 318, 349, 382, 367, 375, 378, 359, 336, 357, 371, -417, 461, 460, 444, 466, 444, 427, 422, 417, 416, 408, 410, 395, 375, 367, 366, 376, 363, 356, 353, 353, 352, 361, 333, 321, -293, 378, 360, 374, 374, 376, 371, 374, 379, 362, 378, 405, 376, 414, 531, -66, -55, -39, -106, -124, -91, -128, -120, -98, -73, --62, -71, -55, -65, -105, -84, -83, -87, -77, -61, -34, -36, -19, 19, -2, -16, -32, -62, -72, -77, -43, -22, -10, -10, -14, --82, -53, -38, -35, -174, -213, -131, -252, -260, -225, -155, -130, -172, -101, -104, -189, -123, -119, -127, -117, -73, 15, 63, 101, 122, -138, 90, -3, -67, -107, -99, -21, 44, 72, 140, 89, -153, -33, 5, 53, -289, -360, -209, -489, -436, -363, -171, -94, -183, -32, --101, -323, -200, -182, -178, -148, -69, 142, 193, 272, 326, 362, 301, 114, -78, -166, -143, 18, 176, 202, 317, 234, -177, 26, 68, -220, -185, -291, -103, -559, -660, -634, -386, -311, -491, -168, -166, -464, -236, -223, -220, -218, -57, 315, 448, 597, 632, 562, 466, 468, -148, -30, -69, 64, 325, 466, 522, 377, -389, -54, -74, -1410, -1141, -1320, -1551, -1287, -842, -357, 188, 479, 387, 93, -207, -650, -396, --166, 85, 34, 101, 168, 272, 325, 273, 603, 616, 394, 59, -103, 50, -306, -216, 327, 245, 190, -62, 467, -823, -866, 123, 323, -462, 2, -301, -583, 143, 170, -245, -758, -833, -601, 7, 230, 2, 49, 81, -8, 104, 317, 782, 43, -168, -26, -8, 18, -211, --238, -306, -487, -503, -171, 457, -404, -508, -2198, -3534, -3622, -2578, -1610, -660, -743, 144, 29, -452, -671, -613, -19, 17, 179, 131, 182, -169, 192, 428, 448, 577, 10, -153, 52, -170, 5, -74, 55, 55, 105, -248, -456, -280, -150, 2459, 3065, 3366, 2723, 1482, -437, -1249, --1173, -219, -220, -907, -1452, -1347, -329, -55, 176, -140, 22, 0, -173, 118, 307, 447, 189, 129, 170, -10, 18, -35, 165, 295, 317, -815, 1330, 1835, 2008, 392, 268, 323, 801, 1813, 2048, 1967, 1378, 428, -488, -1085, -1718, -1859, -1430, -1095, -712, -525, -354, -273, -152, 119, -247, 526, 149, 72, 178, 492, 609, 437, 595, 706, 868, 727, 673, 799, 588, 831, 686, 602, 440, 234, 198, 492, 1076, 1408, 1586, -1560, 1226, 800, 180, 175, 21, -173, -8, 87, 199, 283, 279, 503, 474, 531, 494, 364, 207, 90, 163, 216, 335, 376, 508, 669, -806, 343, 291, 204, 107, 33, 123, 108, 42, 137, 270, 453, 440, 485, 490, 578, 633, 698, 668, 621, 538, 536, 623, 660, 525, -373, 291, 367, 515, 570, 611, 616, 626, 605, 593, 590, 465, 303, 282, 328, 367, 386, 398, 437, 487, 486, 443, 398, 345, 295, -234, 259, 286, 335, 372, 460, 518, 340, 341, 304, 327, 310, 285, 266, 231, 208, 199, 191, 197, 221, 239, 241, 246, 326, 234, -260, 270, 289, 300, 306, 316, 283, 269, 257, 256, 254, 237, 280, 305, 327, 356, 366, 418, 404, 423, 440, 345, 375, 422, 421, -422, 427, 426, 426, 423, 370, 300, 426, 364, 301, 113, 88, 93, 89, 93, 99, 76, 73, 105, 55, 61, 85, 137, 142, 94, -97, 86, 65, 88, 92, 81, 94, 101, 97, 143, 107, 32, 20, 13, 5, 58, 77, 58, 121, 129, -6, 74, 147, 143, 115, -111, 159, 141, 134, 208, 34, 27, 89, 219, 237, 90, 89, 52, 8, 60, 68, 47, 100, 166, 245, 251, 203, 75, 42, 18, --2, 140, 194, 139, 234, 188, -11, 163, 109, 26, 56, 71, 102, 49, 13, 162, -176, -123, 17, 321, 357, 47, 69, 1, -104, -20, 46, 14, 154, 239, 387, 419, 333, 30, -47, -96, -154, 153, 265, 138, 356, 314, -195, 132, 461, 239, 111, 114, 298, 350, -334, 483, -100, -176, -34, 409, 518, 17, 37, -63, -231, -44, -26, -49, 225, 385, 540, 679, 602, 250, 34, -171, -213, 172, 482, -355, 593, 375, -299, 317, -1261, -930, -348, -222, -380, -843, -974, -541, -722, -220, 733, 409, 238, -13, -174, -219, -163, -114, 46, 361, -358, 401, 403, 616, 533, 200, 38, -134, -158, -335, -230, 7, 282, 388, 314, -679, 180, -70, -350, -435, -29, 373, 545, 316, 333, -210, 263, -259, -443, -600, -565, -452, -381, -257, -105, 143, 437, 443, 251, -19, -78, -16, 63, 50, -270, -222, -275, -320, -495, -584, --425, 76, -1821, -2185, -1363, -814, -159, -650, -1137, -1083, -875, -544, -200, -495, -661, -935, -634, -455, -385, -332, -182, -32, 383, 273, -264, --111, 28, -84, -50, -18, -99, 66, -60, -134, -129, -349, -765, -1253, 2479, 1748, 779, -335, -1265, -1684, -1465, -770, -904, -920, -759, -632, --675, -1045, -625, -408, -90, -56, 22, -149, 497, 486, -106, 0, -60, -140, -8, 37, -60, 25, 150, 36, 545, 1000, 1712, 2125, 1258, -1640, 2226, 2360, 2203, 1431, 298, -1058, -1286, -1264, -1188, -463, -341, -885, -798, -953, -968, -973, -784, -545, -120, 1, 31, 57, 154, 442, -152, 68, 156, 415, 590, 664, 756, 856, 912, 1158, 479, 497, 522, 615, 801, 1178, 1417, 1374, 1237, 813, 221, -71, -349, -587, -745, --683, -429, -373, -267, -129, 119, 318, 475, 451, 362, 252, 292, 389, 509, 545, 530, 473, 448, 441, 412, 512, 621, 651, 608, 550, -442, 480, 492, 546, 665, 869, 1120, 1095, 1060, 1035, 953, 861, 766, 712, 680, 629, 547, 478, 418, 431, 480, 466, 521, 498, 514, -448, 437, 396, 490, 591, 685, 632, 187, 229, 229, 234, 252, 273, 301, 314, 369, 376, 396, 417, 473, 529, 571, 615, 645, 685, -697, 746, 733, 665, 599, 513, 434, 363, 330, 300, 285, 272, 264, 229, 230, 203, 214, 232, 149, 214, 213, 224, 230, 223, 215, -200, 221, 245, 268, 305, 330, 356, 344, 340, 340, 337, 336, 340, 295, 255, 214, 249, 198, 131, 138, 137, 129, 124, 118, 115, -137, 178, 93, 120, 216, 67, 52, 3, 47, 58, 85, 67, 58, 56, 24, 11, -30, 51, 75, 104, 56, 47, 53, 61, 67, -73, 93, 109, 155, 95, 80, 58, 60, 61, 67, 93, 100, 73, 92, 86, 39, 66, 139, -22, 22, 57, 113, 100, 88, 80, --36, -101, -184, -10, 83, 168, 47, 13, 42, 52, 80, 89, 121, 182, 252, 177, 129, 44, 19, 18, 53, 115, 129, 84, 128, -111, 21, 121, 32, -156, -20, 68, 195, 134, 111, 34, -162, -242, -426, -9, 133, 275, 33, -32, 19, 48, 108, 90, 180, 308, -458, 309, 177, 10, -42, -25, -6, 156, 184, 47, 221, 227, -116, 58, 374, -135, -36, 119, 258, 289, 234, 184, -151, -445, -781, --268, 120, 395, 28, -102, -38, -11, 78, 66, 167, 381, 619, 538, 422, 103, -65, -196, -161, 245, 413, 181, 401, 182, -225, 311, --1378, -361, -74, 27, -323, -329, -445, -479, -1120, -809, 534, 386, 333, 244, -93, -112, 136, 233, 275, 260, 261, 423, 768, 436, 241, -41, 89, -16, -201, -281, -184, 34, 167, 348, 701, -965, 543, -117, -276, -377, -579, -61, -8, -479, -179, -109, -98, -55, -30, -253, --170, -215, -312, -231, -46, 48, 288, 202, -248, -90, -8, -44, 18, -39, -207, -161, -294, -367, -720, -818, -680, 315, -893, -326, 666, -831, 104, 18, -318, -1067, -776, -754, -703, -258, -170, -385, -566, -630, -479, -412, -235, -123, 257, 235, -363, -38, 187, 35, 27, 20, -34, 31, -128, -112, 18, -267, -625, -861, 406, -857, -2489, -2742, -2358, -927, -380, -888, -356, -254, -275, -289, -290, -298, -262, -300, -299, --401, -232, 17, 215, 181, -285, -191, -188, -230, -55, -68, -230, -155, -156, -414, -271, -60, 605, 664, 2106, 2570, 2296, 1643, 690, -598, --1382, -1529, -997, -671, -379, -452, -307, 6, -157, -255, -304, -304, -256, -288, -187, -107, -178, 62, 130, 167, 70, 16, 65, 282, 533, -836, 1241, 1383, 1289, 1748, 778, 842, 1140, 1417, 1747, 1942, 1679, 912, 71, -568, -886, -1342, -1421, -1202, -1005, -793, -587, -432, -253, -69, -172, 208, 54, -46, -17, 171, 453, 615, 626, 665, 664, 587, 695, 754, 699, 830, 719, 849, 1019, 1107, 1186, 1207, 1304, 1514, 1427, -1350, 1282, 1116, 927, 702, 582, 456, 317, 347, 333, 391, 462, 391, 416, 430, 427, 396, 346, 331, 297, 299, 272, 268, 370, 452, -535, 632, 523, 738, 759, 784, 846, 897, 924, 947, 859, 810, 760, 739, 730, 728, 663, 601, 527, 467, 383, 302, 379, 420, 454, -450, 485, 537, 567, 590, 595, 626, 674, 638, 659, 619, 616, 693, 633, 750, 727, 748, 747, 755, 765, 790, 786, 788, 783, 775, -765, 766, 727, 698, 672, 631, 603, 553, 523, 501, 446, 580, 537, 471, 466, 464, 468, 462, 456, 468, 574, 668, 459, 568, 778, -101, 58, 37, 53, 66, 65, 110, 114, 90, 71, 53, 33, 40, 61, 130, 93, 95, 105, 114, 120, 126, 132, 128, 124, 107, -85, 57, 58, 63, 98, 76, 69, 62, 75, 97, 84, 73, 41, 1, 11, 20, 8, 133, 148, 75, 30, -36, -70, -94, -33, -162, 87, 101, 133, 165, 192, 189, 217, 236, 230, 171, 124, 74, 64, 79, 151, 121, 111, 98, 68, 86, 169, 118, -50, -209, --126, -81, -76, 218, 250, 82, 2, -134, -236, -229, -119, 280, 95, 105, 160, 219, 271, 255, 355, 389, 391, 262, 154, 57, 20, -87, 201, 148, 99, 89, 73, 122, 205, 86, 32, -237, -217, -196, -244, 194, 264, 46, -8, -296, -491, -577, -303, 305, 87, 89, -176, 293, 381, 333, 436, 489, 601, 442, 297, 89, -56, -102, 71, 215, 228, 98, 102, 58, 242, 216, -832, -228, -214, 16, 176, -481, 390, 148, -483, -415, 561, 147, 63, 276, 134, 112, 105, 171, 213, 198, 437, 547, 599, 359, 174, -30, 82, 74, -134, -54, -26, 72, 361, 408, 411, -683, 257, 455, 343, -178, -1063, -898, -671, -325, -385, -387, -324, -405, -308, -66, -140, -149, -18, 76, 224, -369, 211, 134, -15, 82, 180, 91, 18, -67, -74, -91, -213, -256, -450, -476, -326, 108, 49, 456, 259, 206, 444, 488, 325, -60, --476, -509, -285, -193, -118, -46, 41, 79, 130, -42, 24, 271, 122, 128, -9, -5, 63, 48, 11, -5, 32, -75, -258, -363, -169, --307, -562, -254, -1486, -2146, -2410, -2040, -972, -1056, -829, -226, -477, -325, -68, -151, -163, -203, -234, -225, -156, 11, 160, 435, -3, -126, --101, -57, -13, -26, 52, -5, -133, -259, -366, -585, -591, -733, -773, -988, 1843, 1517, 835, 31, -1007, -1354, -1184, -613, -645, -637, -686, --578, -515, -572, -349, -156, -48, -159, -94, 127, 132, 138, -120, 25, 19, -123, -66, 8, 167, 154, 314, 480, 1198, 1539, 1499, 1652, -1191, 1210, 1246, 1129, 925, 407, -289, -1025, -1085, -1011, -888, -770, -688, -548, -745, -766, -651, -592, -475, -261, -158, -97, -37, 91, 221, -407, 450, 538, 698, 732, 802, 874, 795, 801, 913, 1100, 988, 1099, 1253, 1395, 1614, 1492, 1477, 1441, 1009, 530, 53, 17, -51, -100, --99, -102, -152, -122, -100, -87, 39, 150, 261, 330, 397, 458, 443, 473, 450, 555, 581, 671, 745, 779, 803, 912, 1060, 1101, 1057, -1020, 980, 949, 902, 894, 857, 894, 877, 859, 808, 752, 700, 645, 600, 552, 496, 434, 499, 522, 561, 586, 629, 674, 737, 792, -824, 870, 906, 928, 952, 977, 1006, 1050, 918, 948, 926, 917, 903, 909, 911, 908, 899, 877, 867, 836, 817, 803, 783, 765, 746, -722, 704, 671, 702, 705, 696, 747, 748, 727, 735, 746, 767, 777, 796, 814, 859, 893, 859, 896, 961, 147, 113, 99, 105, 118, -114, 155, 155, 115, 133, 112, 51, 62, 75, 116, 127, 139, 142, 151, 159, 173, 173, 165, 145, 140, 125, 96, 109, 121, 165, -118, 108, 128, 111, 136, 195, 131, 120, 103, 112, 99, 58, 156, 175, 80, 147, 82, -79, -85, -56, 73, 120, 166, 174, 198, -223, 239, 260, 269, 217, 185, 147, 102, 117, 142, 244, 152, 133, 175, 85, 134, 362, 203, 72, -21, 36, 72, 35, 242, 264, -28, 191, 47, -308, -291, -221, 38, 103, 175, 200, 244, 303, 343, 414, 415, 323, 249, 166, 86, 77, 159, 365, 155, 111, 236, -66, 130, 569, 208, 171, 72, 119, 18, -169, 147, 202, -79, 214, 12, -569, -619, -502, -76, 82, 220, 267, 318, 405, 433, 536, -567, 501, 382, 236, 89, -33, 56, 384, 213, 144, 228, -52, 111, 826, 373, -430, -288, -78, 277, 606, 535, 444, 477, 16, -138, --90, 27, 69, 161, 40, 7, 78, 206, 348, 380, 651, 683, 457, 346, 236, 76, 142, 112, -56, -1, 151, 376, 492, 308, -61, --333, 95, 1312, 352, -323, -528, -1208, -998, 140, 18, 144, 208, -27, -172, -180, -185, -119, 26, 102, 184, 336, 78, 59, 182, 158, -174, 76, -31, -85, -27, 13, -79, -210, -215, -174, -128, -270, 165, -9, -146, -40, -41, 537, 625, 193, 94, -56, -191, -277, -174, -58, 26, 45, 134, 184, 315, 704, 196, 108, 263, 177, 111, 83, 92, 14, 11, -142, -237, -271, -237, -406, -638, -2, -1558, -909, -58, 85, -746, -620, -582, -611, -160, 3, -26, -248, -360, -312, -378, -234, -137, 52, 165, 362, 33, -83, -31, -6, 68, 70, 10, --13, 9, -121, -218, -267, -254, -603, -1153, -1431, -6, -1027, -1811, -1718, -1357, -582, -216, -329, -301, -277, -103, -265, -289, -144, -306, -322, --261, -44, 89, 207, -61, -37, 171, 111, 49, -77, 55, 86, -26, -127, -154, -158, 138, 416, 661, 276, 1675, 1611, 1293, 711, -41, --881, -1225, -1153, -869, -665, -586, -390, -328, -300, -318, -334, -262, -329, -295, -177, -280, -231, -152, 90, 301, 464, 468, 491, 551, 824, -1008, 1162, 1003, 1028, 1332, 1455, 874, 871, 730, 672, 673, 442, 163, -193, -410, -631, -892, -797, -733, -681, -586, -501, -410, -289, -188, --53, 66, 136, 182, 214, 241, 257, 408, 533, 683, 752, 834, 940, 946, 954, 940, 926, 912, 750, 705, 656, 583, 524, 499, 483, -451, 415, 364, 293, 211, 146, 131, 110, 77, 50, 12, -30, 161, 142, 225, 317, 433, 477, 533, 586, 667, 702, 759, 844, 830, -844, 836, 784, 755, 630, 647, 629, 622, 623, 614, 606, 572, 545, 527, 498, 474, 437, 439, 434, 435, 432, 441, 398, 533, 605, -723, 574, 664, 789, 806, 818, 826, 852, 869, 892, 819, 733, 896, 816, 741, 183, 168, 163, 158, 164, 150, 187, 187, 146, 176, -160, 102, 105, 106, 110, 151, 169, 172, 182, 193, 214, 202, 192, 167, 165, 157, 145, 152, 161, 189, 157, 154, 173, 150, 161, -242, 178, 231, 215, 174, 137, 102, 189, 210, 109, 208, 160, -7, -20, -27, 5, 126, 191, 204, 234, 264, 315, 297, 277, 214, -192, 173, 152, 172, 193, 245, 199, 175, 200, 120, 178, 409, 288, 224, 157, 167, 190, 112, 280, 268, 67, 254, 152, -142, -187, --193, -136, 75, 196, 216, 274, 337, 433, 420, 385, 242, 226, 182, 125, 141, 186, 320, 183, 165, 262, 97, 155, 587, 295, 411, -302, 225, 51, -96, 151, 259, -35, 264, 143, -353, -464, -526, -383, -1, 221, 287, 365, 461, 594, 598, 547, 366, 329, 266, 153, -25, 140, 485, 230, 163, 271, -51, 199, 980, 600, -356, -7, 123, 577, 1295, 647, 288, 180, 362, 270, -225, 267, 300, 59, 73, -55, 78, 96, 230, 475, 516, 487, 387, 377, 335, 149, 175, 97, -91, 26, 291, 554, 576, 213, -422, -485, 197, 1165, -36, -581, --606, -706, -334, 497, 207, 159, 357, 299, 181, 118, -11, -41, -14, 121, 180, 291, 202, 214, 289, 214, 142, 152, 32, 2, 79, -159, 63, -77, -145, -113, 126, -160, -151, -163, -210, -57, 29, 298, 304, 371, 249, 139, 115, -212, -206, 54, 42, 94, 110, 278, -315, 422, 187, 87, 269, 243, 127, 36, 121, 50, -24, -167, -185, -108, -418, -471, -396, -176, -530, 238, 201, -11, -267, -530, -543, --334, -320, -256, -10, -182, -178, 68, 135, 148, 74, 211, 228, 167, 212, 208, 172, 151, 153, 162, 24, -5, 90, 60, -42, 29, --134, -420, -689, -828, -1288, -2037, -1783, -1382, -743, -588, -417, -214, -59, -39, -238, -139, -197, -265, -190, -121, -47, 158, 224, 194, 45, -47, 201, 65, 49, 76, 140, 89, -124, -339, -436, -426, -668, -592, -273, -744, 944, 540, -60, -469, -859, -836, -691, -517, -342, -298, --426, -250, -175, -170, -147, -102, -113, -81, -74, -51, -64, -15, 109, 160, 203, 165, 248, 364, 438, 661, 786, 834, 811, 781, 833, -758, 791, 706, 378, 168, -138, -421, -761, -1115, -1034, -973, -930, -885, -845, -798, -770, -746, -719, -611, -506, -405, -255, -80, 72, 194, -322, 459, 528, 555, 632, 666, 758, 834, 883, 969, 1064, 912, 424, 237, 177, 111, 62, 12, -9, -68, -88, -149, -190, -233, -272, --324, -250, -183, -123, -68, -13, 32, 52, -1, -9, 25, 21, -8, 55, 130, 225, 277, 318, 435, 382, 382, 340, 269, 151, 26, -42, 16, -5, -30, -58, -83, -95, -104, -116, -130, -144, -174, -136, -114, -88, -64, -40, -22, 67, 130, 250, 44, 138, 253, 285, -304, 317, 348, 374, 406, 247, 127, 383, 241, -41, 168, 167, 152, 167, 168, 154, 163, 157, 137, 147, 137, 105, 110, 110, 110, -139, 152, 153, 163, 173, 185, 182, 179, 174, 148, 147, 152, 171, 176, 176, 173, 171, 165, 146, 141, 213, 174, 257, 190, 200, -179, 141, 159, 162, 126, 160, 131, 28, 28, 28, 42, 123, 161, 166, 203, 231, 283, 277, 233, 209, 157, 145, 134, 192, 218, -206, 216, 180, 145, 111, 151, 295, 248, 267, 199, 253, 275, 186, 212, 170, 93, 151, 86, -63, -69, -84, -75, 72, 164, 164, -237, 280, 397, 347, 299, 237, 160, 139, 86, 200, 231, 235, 233, 205, 174, 88, 117, 389, 248, 451, 289, 304, 201, 54, 101, -151, 71, 156, 102, -202, -265, -324, -255, 16, 144, 174, 297, 412, 616, 554, 439, 307, 233, 214, 78, 104, 217, 414, 288, 194, -147, -42, 165, 680, 529, -125, 97, 363, 727, 1200, 518, 165, 69, 111, 60, -268, 502, 591, 129, 122, 113, 190, 119, 90, 234, -249, 231, 305, 340, 369, 212, 146, 61, -99, 152, 472, 595, 443, 63, -537, -370, 400, 15, -457, -584, -630, -439, -257, -152, 120, -173, -34, 302, 314, 150, 105, 75, 35, 256, 288, 211, 318, 327, 321, 254, 133, 145, 68, 95, 228, 178, 26, -157, -152, 19, -156, 363, -77, -111, -221, -175, -143, 48, 229, 516, 500, 360, 155, 56, -6, -21, 154, 246, 162, 399, 369, 132, 120, 94, 146, -248, 127, 78, 135, 85, 10, -97, -66, 65, -347, -230, -48, -109, -104, -269, 44, 154, -8, 127, -37, -430, -333, -275, -185, 26, -87, 17, 241, 282, 244, 301, 275, 162, 302, 326, 285, 272, 194, 162, 58, 52, 149, 138, 67, 215, -128, -254, -248, -154, -947, --747, -378, -441, -686, -655, -594, -472, -46, 87, -103, 15, 29, -31, -37, 20, 144, 252, 261, 131, 191, 174, 200, 136, 134, 176, -71, -70, -235, -350, -408, -403, -638, -722, -716, -876, -441, -757, -979, -804, -438, -138, 65, 209, -183, -343, -263, -249, -216, -193, -95, --6, 151, 185, 156, 11, -25, 32, 185, 168, 198, 247, 274, 262, 113, 119, 153, 178, 281, 168, -103, -299, 263, 71, -160, -350, --627, -716, -811, -866, -705, -572, -478, -515, -527, -562, -490, -439, -380, -290, -171, -70, -62, -4, 39, 105, 208, 265, 363, 388, 512, -464, 479, 461, 439, 489, 532, 343, 41, -61, -132, -183, -236, -287, -354, -462, -485, -534, -552, -561, -563, -579, -515, -462, -413, -368, --339, -288, -159, -164, -128, -90, -55, -41, -24, -10, 28, 35, 55, 94, 59, 29, 18, -36, -207, -233, -248, -281, -307, -347, -375, --401, -399, -402, -409, -417, -425, -442, -416, -399, -379, -358, -332, -330, -271, -241, -178, -239, -196, -149, -143, -135, -139, -124, -118, -102, --154, -191, -127, -169, -373, 139, 129, 120, 144, 140, 112, 126, 126, 122, 117, 115, 121, 115, 116, 120, 129, 131, 127, 128, 130, -126, 138, 143, 156, 121, 123, 127, 158, 162, 148, 154, 148, 126, 123, 115, 147, 132, 174, 123, 148, 137, 79, 103, 108, 121, -118, 128, 136, 106, 106, 113, 145, 151, 135, 140, 145, 160, 199, 174, 194, 123, 115, 113, 195, 222, 171, 186, 150, 87, 96, -112, 166, 155, 153, 126, 225, 215, 63, 118, 119, 120, 97, 89, 145, 86, 88, 91, 144, 165, 131, 151, 146, 190, 217, 203, -242, 115, 109, 69, 250, 274, 188, 226, 183, 89, 79, 77, 174, 122, 234, 113, 159, 119, -77, -13, 28, 104, 103, 192, 215, -58, 24, 23, 150, 165, 116, 152, 187, 288, 366, 304, 333, 173, 135, -15, 179, 293, 292, 274, 158, 21, -1, 97, 329, 283, --86, 239, 539, 633, 777, 432, 288, 294, -121, -235, -225, 329, 498, 235, 226, 222, 245, 180, 92, 6, 59, 107, 234, 271, 334, -325, 104, 11, -26, 349, 583, 386, 210, -74, -486, -371, 607, -931, -497, -363, -412, -335, -458, -851, 82, 304, -207, 186, 274, 279, -189, 132, 112, 287, 316, 125, 224, 244, 241, 347, 228, 163, 95, 163, 330, 176, 20, -150, 99, 249, -5, 866, -211, -215, -85, --2, 190, 16, 174, 392, 446, 377, 146, 262, 111, -47, -2, 84, 94, 214, 188, 0, 1, -35, -10, 104, 44, 117, 103, 60, -65, -15, 63, 135, -90, 77, 141, -156, 131, 48, 28, 58, 287, 183, 39, -180, -282, -332, -485, -106, 84, 96, 126, 160, 210, -209, 174, 115, 192, 178, 166, 236, 169, 121, 60, 42, 98, 61, -2, 5, -56, -33, -35, 159, -452, -179, -95, -118, -235, -329, --290, -146, -130, -140, -166, -56, 13, 45, 149, 221, 270, 217, 148, 51, 195, 187, 107, 118, 109, 181, -29, -150, -185, -201, -232, --338, -432, -603, -871, -679, -873, -875, -769, -581, -340, -121, -135, -340, -278, -188, -71, -115, -85, -3, 48, 119, 148, 220, 223, 122, -123, 98, 64, 67, 88, 169, 145, 67, -120, -233, -287, -319, -136, -163, -339, -641, -304, -453, -449, -426, -417, -346, -232, -113, -125, --170, -189, -183, -168, -165, -111, -63, -20, -64, -102, -137, -84, -51, -7, 44, 95, 143, 177, 187, 286, 166, 108, -4, -81, -129, --160, -266, -76, -144, -194, -248, -304, -360, -437, -502, -500, -476, -469, -461, -466, -489, -452, -424, -379, -341, -288, -255, -273, -197, -161, --122, -88, -33, -31, -30, -20, -13, 11, 45, 14, -12, -29, -77, -264, -253, -273, -292, -309, -327, -339, -364, -352, -356, -358, -361, --359, -358, -340, -328, -320, -305, -294, -267, -295, -296, -303, -250, -258, -254, -250, -239, -238, -223, -221, -210, -227, -231, -251, -254, -357, -99, 95, 87, 98, 89, 62, 74, 78, 91, 82, 84, 108, 82, 82, 89, 95, 95, 96, 87, 86, 79, 96, 102, 123, 86, -100, 110, 142, 145, 123, 126, 118, 101, 101, 91, 105, 97, 83, 62, 82, 71, 7, 23, 40, 98, 88, 104, 159, 77, 61, -79, 96, 107, 107, 84, 77, 76, 115, 112, 132, 90, 95, 107, 185, 202, 139, 141, 116, 71, 90, 95, 100, 83, 87, 97, -143, 85, -61, -9, 17, 116, 70, 80, 215, 51, 54, 87, 123, 128, 123, 81, 58, 60, 105, 121, 163, 83, 109, 109, 281, -299, 180, 203, 157, 86, 101, 77, 81, 65, 27, 20, 54, 4, -221, -191, -118, 115, 102, 190, 380, 81, -15, 7, 80, 125, -112, 44, 13, 28, 133, 177, 307, 151, 92, 4, 256, 344, 182, 201, 127, 13, 57, 84, 157, 101, 48, 322, 390, 341, 401, -448, 413, 269, -102, -309, -365, -130, 174, 493, 305, 239, 257, 213, 178, 80, 42, 71, 163, 171, 239, 368, 89, 15, 155, 488, -543, 167, 134, -80, -460, -236, 313, -1084, -233, -36, -201, -249, -292, -394, 240, 419, -25, 127, 187, 281, 289, 283, 288, 240, 212, -138, 152, 147, 134, 346, 287, 163, 184, 253, 343, 109, 40, 47, 173, 245, -14, 687, -258, -247, 190, 298, 377, 73, 38, 63, -268, 357, 180, 269, 128, -63, -137, -67, 172, 55, -16, -95, -74, -102, -130, -48, 13, 149, 115, 75, 96, 83, 122, 62, 182, -247, 46, -192, 270, 303, 202, 186, 277, 177, 81, -33, -100, -150, -338, -147, -26, 33, 3, 63, 186, 153, 145, 94, 48, 37, -45, 141, 119, 73, 77, 59, 59, 20, -13, -108, -38, 13, -17, 182, -432, -303, -177, -98, -68, -90, -84, -50, -305, -319, -157, --113, -42, 6, 122, 162, 178, 33, 6, 81, 89, 72, 3, 76, 61, 59, -47, -105, -71, -84, -166, -324, -525, -703, -847, -599, --550, -512, -430, -439, -441, -578, -605, -492, -289, -163, -153, -111, -72, -43, 61, 112, 225, 130, 118, 150, 163, 152, 67, 74, 45, -69, -117, -213, -262, -359, -407, -415, -342, -273, -181, -402, -596, -676, -587, -498, -380, -225, -67, 61, 17, -12, -29, 32, 76, 115, -167, 214, 277, 196, 149, 58, -4, -11, -30, 21, 62, 126, 99, 51, 55, -40, -95, -186, -296, -421, -522, -579, -164, -221, -226, --240, -265, -287, -315, -311, -273, -224, -190, -165, -142, -120, -129, -136, -133, -127, -112, -100, -108, -43, -17, -2, 22, 71, 35, 10, --15, -29, -36, -32, -65, -79, -91, -128, -142, -123, -124, -125, -120, -118, -114, -124, -110, -105, -97, -88, -79, -65, -69, -70, -75, --74, -79, -72, -103, -120, -160, -59, -88, -117, -121, -117, -122, -123, -133, -144, -129, -108, -181, -156, -64, 48, 66, 69, 48, 33, -10, 20, 27, 46, 37, 37, 60, 15, 7, 6, 26, 38, 52, 50, 50, 43, 53, 53, 60, 39, 62, 87, 105, 108, 90, -89, 83, 69, 70, 60, 69, 65, 46, 71, 34, 5, -47, -46, -23, 42, 42, 47, 95, -33, -78, -70, -31, 14, 60, 62, -61, 44, 60, 45, 28, 37, 65, 107, 154, 163, 115, 108, 89, 55, 89, 96, 68, 59, 119, 173, 88, -13, -116, -98, -62, -62, 30, 24, 132, -115, -163, -149, -56, 10, 88, 80, 76, 49, 68, 54, 11, 29, 97, 164, 278, 296, 198, 197, 160, 90, -140, 112, 73, 99, 0, 122, 44, -58, -237, -305, -215, 47, 63, 92, 265, -129, -335, -343, -232, -60, 79, 78, 60, 8, 47, -61, 105, 102, 109, 133, 331, 385, 194, 187, 155, 60, 154, 173, 116, 70, 402, 454, 151, 36, 137, 504, 508, 85, 25, -218, --414, -414, -104, 540, 372, 302, 270, 222, 211, 194, 184, 172, 158, 114, 141, 301, 81, 91, 373, 500, 397, 124, 58, -107, -272, -162, -569, -819, 63, 249, -163, -77, -92, -213, 142, 279, 182, 81, 90, 230, 303, 349, 346, 167, 94, 112, 55, 56, 93, 223, -243, 146, 281, 340, 293, 75, 94, 248, 183, 213, 294, -168, 132, 158, 449, 428, 314, 31, -175, -186, -159, -6, 233, 146, 120, -27, -64, -62, 149, -34, -99, -75, -93, -72, -50, -93, 28, 182, 110, 83, 91, 121, 102, -20, 208, 269, 156, 143, 69, 169, -173, 200, 191, 271, 337, 387, 121, -4, 35, -145, -147, -81, -33, 33, 178, 181, 181, 128, 12, -27, 32, 22, 29, 51, 126, -130, 55, 86, 53, -110, -96, -79, -150, -28, -406, -210, -209, -106, 88, 15, -121, -288, -372, -315, -122, -118, -44, 20, 61, 51, -2, -27, -24, 50, 5, -1, 11, 37, -1, -100, -55, -56, -57, -94, -208, -344, -503, -598, -539, -496, -295, -290, -284, -358, -470, --427, -351, -283, -216, -184, -150, -111, -63, 0, 70, 100, 43, 31, 43, 115, 119, 110, 82, 80, 10, -96, -267, -341, -330, -377, --424, -473, -461, -378, -243, -267, -476, -485, -446, -437, -418, -345, -293, -230, -189, -133, -81, 27, 120, 211, 169, 148, 134, 139, 134, -138, 121, 101, 87, 48, 39, 31, -6, -119, -157, -179, -143, -143, -230, -326, -404, -438, -283, -330, -285, -241, -194, -156, -109, -56, --26, 3, 28, 50, 69, 109, 93, 88, 76, 70, 69, 60, 0, 12, 7, 5, -8, -15, -57, -75, -92, -124, -156, -164, -194, --201, -226, -258, -85, -119, -91, -77, -63, -48, -35, -23, -14, -1, 12, 26, 38, 52, 46, 46, 44, 41, 35, 40, 23, 21, -14, 12, 12, 35, 28, 22, 8, 0, -15, -32, -56, -75, -61, -78, 10, -2, 35, 42, 5, -16, -30, -32, -25, 6, -11, --14, -1, -35, -47, -60, -39, -22, 3, 12, 16, 5, 7, 4, 0, -9, 13, 51, 58, 61, 47, 50, 45, 23, 32, 22, -27, 33, 46, 68, -6, -45, -78, -99, -80, 1, -18, -17, 6, -77, -128, -158, -128, -77, -3, 37, 47, 16, 13, -21, -47, --24, 15, 88, 105, 112, 85, 80, 61, 13, 75, 83, 26, 39, 165, 233, 42, -73, -126, -171, -143, 37, -41, -50, -8, -173, --243, -296, -215, -120, 14, 81, 101, 44, 24, -18, -84, -42, 44, 161, 229, 246, 184, 187, 160, 49, 148, 126, 55, 124, 91, -231, 23, -101, -194, -339, -273, 33, -30, -16, 85, -149, -366, -480, -430, -251, -17, 113, 140, 37, 12, -55, -95, -2, 95, 219, -385, 424, 236, 206, 183, 73, 241, 270, 87, 89, 651, 501, 94, -77, -168, 325, 347, -155, 50, -188, -591, -566, -322, 172, 251, -266, 214, 186, 173, 195, 256, 242, 202, 113, 73, 199, 35, 157, 578, 399, 208, 112, -115, -215, -47, 454, -1158, -537, -52, 192, -13, 152, 55, -267, -189, -24, 343, 91, 26, 102, 236, 311, 266, 90, 14, 87, 38, 40, 81, 86, 136, 116, 322, 361, 211, -102, 130, 224, 171, 279, 602, -773, 643, 689, 633, 487, 336, 183, -62, -206, -386, -296, 124, 10, 115, 150, 110, 28, -4, -66, --102, -58, -48, -18, 21, -45, 61, 169, 104, 84, 71, 153, 136, 31, 216, 251, 284, 520, -228, -168, -14, 130, 206, 414, 532, -618, 298, 138, 275, -66, -161, -94, 53, 113, 157, 164, 141, 112, 17, -18, 3, -35, -27, -9, 108, 156, 85, 106, 60, -50, --69, -36, -131, -190, -236, -105, -64, -30, 13, -54, -205, -428, -261, -167, -70, -3, 32, 53, 14, -3, -23, -1, 22, 36, 10, -4, 8, 5, -26, -153, -106, -120, -133, -123, -176, -232, -290, -336, -314, -286, -189, -178, -163, -167, -142, -142, -97, -73, -54, -78, --102, -52, -1, 75, 40, 6, -45, -6, 20, 58, 69, 79, 110, 20, -79, -212, -284, -321, -327, -378, -452, -530, -548, -505, -439, --253, -240, -228, -227, -258, -282, -291, -311, -319, -256, -178, -106, -47, 10, 88, 55, 40, 19, 48, 65, 94, 102, 116, 144, 13, --69, -195, -215, -311, -356, -315, -243, -192, -190, -178, -173, -206, -346, -318, -270, -225, -175, -123, -67, -21, -4, 2, 14, 29, 45, -73, 75, 85, 87, 90, 87, 95, 85, 17, -18, -56, -81, -125, -148, -167, -183, -220, -262, -293, -308, -316, -326, -323, -134, -144, --128, -114, -101, -91, -82, -67, -64, -53, -43, -34, -25, -17, -19, -18, -16, -15, -14, -14, -12, -17, -15, -53, -52, -45, -53, --61, -73, -83, -92, -105, -119, -127, -122, -132, -64, -35, -1, 5, -29, -47, -52, -62, -56, -21, -40, -42, -37, -47, -56, -78, --67, -57, -39, -22, -16, -22, -30, -35, -39, -43, -28, 11, 5, 9, 6, 12, 8, -22, -4, -12, -23, -3, 21, 25, -45, --78, -90, -121, -105, -22, -52, -44, -29, -40, -81, -149, -145, -121, -68, -9, 10, -13, -33, -66, -80, -69, -32, 62, 42, 51, -57, 52, 39, -22, 51, 45, -46, -2, 128, 165, -26, -117, -117, -199, -172, 16, -74, -63, -51, -89, -148, -264, -239, -182, -79, -29, 67, 23, -27, -76, -107, -95, -24, 135, 125, 146, 146, 172, 148, -4, 119, 94, -27, 87, 79, 150, -55, -131, -147, -297, --261, 21, -76, -38, 45, 25, -144, -373, -408, -328, -153, 46, 110, 27, -54, -130, -155, -96, 28, 233, 344, 378, 227, 222, 207, -74, 283, 267, -45, 19, 716, 432, 58, -198, -418, 38, 128, -222, 53, -103, -505, -504, -376, -147, 108, 197, 120, 144, 154, 176, -217, 189, 133, 102, 40, 93, -9, 165, 614, 256, 47, -7, -334, -316, 110, 606, -1142, -537, -365, 8, 269, 227, 81, -209, -337, --195, 390, 88, -3, 62, 155, 192, 86, 18, -25, 20, 66, 94, 98, 33, 87, 143, 310, 303, 121, 101, 114, 167, 285, 351, -371, -845, 849, 845, 620, 423, 192, 524, 367, -312, -289, -295, -123, 15, 191, 288, 256, 144, -64, -49, -60, -88, -66, -15, 23, -27, 92, 109, 63, 58, 64, 172, 207, 217, 171, 105, 251, 658, -429, -326, -222, -27, 146, 278, 373, 321, 440, 372, 291, 123, -0, 13, 99, 147, 111, 79, 29, 34, 24, -11, -77, -85, -58, -37, 15, 62, 49, 29, -4, 6, -45, -7, -35, -287, 9, -148, 27, -48, -24, -69, -79, -112, -56, -63, -92, 5, 48, 40, 35, 44, 54, 90, 82, 24, 5, 4, 54, -39, -87, -120, --159, -163, -123, -76, -72, -65, -52, -74, -91, -28, -208, -135, -73, -26, 2, 5, 18, 34, -47, -46, 2, 41, 73, 104, 6, --20, -7, 23, 50, 57, 81, 60, 38, -85, -159, -233, -237, -269, -322, -372, -436, -488, -552, -543, -489, -305, -98, -66, -72, -92, --101, -125, -158, -186, -140, -97, -56, -63, -66, -58, -32, -6, 11, 27, 44, 70, 56, 51, 63, -71, -189, -337, -350, -374, -400, --363, -338, -313, -231, -151, -81, -94, -216, -164, -154, -144, -133, -117, -95, -87, -78, -80, -79, -73, -62, -58, -61, -67, -70, -72, --77, -77, -68, -106, -121, -133, -128, -141, -139, -148, -157, -172, -183, -216, -208, -224, -227, -203, -131, -130, -132, -126, -124, -123, -123, --118, -118, -114, -109, -105, -101, -95, -97, -97, -97, -97, -96, -101, -94, -94, -86, -119, -116, -112, -118, -123, -125, -131, -134, -133, --129, -129, -131, -131, -143, -41, -16, -18, -39, -50, -52, -61, -56, -30, -42, -41, -35, -30, -36, -63, -63, -62, -51, -39, -33, --28, -42, -48, -57, -51, -41, -6, -26, -22, -8, -7, -12, -39, -21, -24, -52, -19, -4, -16, -55, -77, -78, -101, -96, -42, --63, -39, -13, 24, -7, -100, -121, -125, -90, -51, -28, -22, -50, -74, -94, -80, -49, 49, 1, 11, 56, 42, 34, -15, 32, -11, -88, -22, 84, 62, -56, -117, -101, -166, -147, -17, -70, -35, -11, 37, -11, -173, -195, -192, -119, -47, -4, 6, -49, -92, --119, -107, -59, 130, 37, 68, 146, 160, 132, -12, 74, 50, -94, 63, 39, 31, -86, -123, -107, -197, -211, -60, -104, -15, 94, -228, 101, -218, -312, -327, -213, -74, 10, 29, -65, -125, -153, -139, -40, 228, 233, 262, 238, 258, 239, 98, 274, 181, -177, -38, -623, 255, 3, -239, -423, -174, -3, -33, 102, 5, -286, -422, -376, -244, 0, 108, 67, 67, 72, 128, 122, 86, 33, 108, 50, --7, 9, 155, 415, 140, -31, -168, -448, -301, 231, 615, -939, -544, -449, -35, 554, 241, 41, -19, -299, -199, 347, 89, -6, 33, -48, 47, -39, -7, -2, 13, 58, 104, 86, 25, 85, 178, 244, 196, 43, 30, 72, 239, 445, 335, -168, -786, 683, 775, 411, -77, -188, 284, 388, -20, 5, -117, -231, 63, 245, 306, 279, 183, -21, -40, -43, -54, -62, -23, 6, 96, 113, 30, 19, 27, -36, 185, 241, 295, -21, -161, 70, 496, -412, -387, -311, -130, 33, 7, 7, -4, 386, 468, 278, 277, 191, 153, 82, 92, 55, -13, -44, -79, -32, -44, -122, -135, -98, -37, -74, -51, -10, -39, -37, 22, 0, 8, -26, -283, 197, 309, 272, 205, 157, 105, -170, 291, 121, 4, -113, -69, -33, -8, 28, 56, 83, 98, 86, 28, 27, 10, 18, -56, -109, -106, -146, -107, -8, -7, 8, -44, 78, 105, 124, 152, -316, -191, -165, -112, -95, -26, -9, 1, 12, 51, 70, 100, 87, 67, 21, 12, 81, 68, 74, 72, -90, 35, -81, -154, -177, -171, -174, -214, -269, -322, -360, -360, -489, -527, -503, -415, -40, 6, 7, 19, 36, 28, 26, 20, 25, -24, 33, 15, 1, -12, 21, 45, 67, 66, 78, 84, 19, -17, -48, -111, -199, -279, -320, -322, -364, -337, -344, -341, -253, -172, --109, -79, -124, -100, -102, -104, -106, -105, -104, -103, -91, -80, -71, -62, -49, -42, -47, -54, -57, -58, -62, -58, -91, -91, -108, --118, -114, -111, -96, -93, -95, -91, -89, -97, -103, -119, -120, -111, -99, -77, -85, -86, -89, -91, -94, -98, -94, -92, -88, -84, --82, -76, -79, -79, -80, -80, -82, -78, -99, -111, -129, -107, -127, -150, -147, -145, -138, -137, -133, -127, -113, -96, -124, -109, -113, --31, -15, -21, -32, -38, -38, -46, -44, -34, -30, -24, -17, -9, -15, -39, -47, -51, -47, -39, -34, -26, -40, -46, -58, -41, --34, -6, -30, -25, 3, -7, -13, -27, -19, -18, -45, -16, -4, -20, -37, -52, -49, -72, -79, -60, -52, -18, 17, 57, 37, --45, -86, -108, -92, -73, -54, -32, -56, -75, -101, -68, -40, 36, -10, 2, 70, 39, 34, 15, 28, 4, -67, -10, 54, 7, --39, -79, -68, -127, -119, -71, -45, 14, 43, 106, 67, -85, -137, -169, -135, -98, -65, -20, -70, -104, -140, -88, -53, 117, 6, -45, 180, 143, 116, 23, 54, 39, -81, 60, 47, -4, -36, -62, -46, -117, -181, -154, -97, 24, 139, 297, 229, -65, -205, -283, --243, -175, -101, -14, -74, -123, -160, -133, -62, 219, 141, 167, 292, 297, 254, 146, 234, 108, -178, -14, 387, 49, -52, -216, -326, --284, -67, 166, 153, 118, 10, -332, -370, -232, -65, 35, 52, 32, 10, 28, 6, -5, -36, 114, 76, -80, 88, 180, 155, 72, --54, -242, -394, -171, 306, 493, -643, -303, -362, 6, 763, 317, 88, 175, -217, -187, 171, 131, 70, -30, -58, -81, -83, -40, -23, -0, -4, 32, 65, 38, 103, 175, 158, 74, -56, -46, 65, 333, 501, 206, -541, -642, 327, 774, 180, -294, -567, -428, -47, 544, -202, 3, -85, 68, 175, 225, 215, 158, 64, -25, -40, 12, 7, 16, 12, 115, 94, 3, -27, -10, 16, 174, 193, 160, -174, --288, -66, 123, -251, -412, -294, -154, -93, -123, -128, 35, 236, 380, 281, 366, 329, 221, 71, -9, -32, -82, -111, -138, -114, -106, --131, -144, -113, -40, -96, -91, -38, -51, -4, 30, 66, 44, -39, -129, 240, 290, 431, 469, 425, 334, 327, 403, 255, 141, -7, --70, -95, -65, 4, 43, 63, 77, 72, 39, 36, -3, -54, -78, -110, -111, -68, 5, 72, 29, 25, 42, 84, 133, 165, 178, --367, -231, -237, -193, -151, -67, -15, 37, 57, 92, 125, 123, 107, 67, 65, 79, 107, 95, 84, 78, 32, -39, -145, -159, -156, --129, -139, -172, -190, -234, -249, -226, -316, -378, -439, -433, -77, -18, -9, 15, 32, 48, 75, 107, 111, 110, 113, 95, 87, 80, -90, 95, 101, 93, 87, 95, 22, -46, -115, -114, -142, -148, -208, -226, -286, -285, -315, -338, -289, -243, -211, -136, -65, -42, -50, --53, -56, -60, -70, -80, -76, -66, -55, -41, -30, -23, -21, -19, -16, -11, -8, 1, -36, -32, -47, -60, -73, -74, -68, -64, --70, -66, -68, -72, -68, -68, -63, -58, -13, 7, -4, -9, -16, -21, -24, -30, -23, -22, -21, -21, -20, -16, -15, -14, -13, --11, -10, -3, -21, -30, -49, -26, -41, -65, -64, -64, -59, -60, -58, -58, -42, -26, -43, -24, -9, -18, -8, -13, -16, -21, --25, -34, -33, -30, -15, -7, -2, 3, -1, -11, -27, -34, -35, -32, -30, -23, -33, -37, -52, -24, -19, -7, -20, -15, 11, --5, -10, -9, -10, -5, -24, -7, 17, 2, 2, -13, -23, -56, -70, -61, -30, 3, 29, 62, 58, 17, -43, -77, -82, -80, --71, -50, -65, -72, -97, -41, -16, 17, -3, 6, 65, 31, 30, 42, 32, 17, -15, 20, 46, 0, 5, -28, -44, -115, -115, --92, -12, 52, 57, 115, 95, 24, -69, -123, -125, -121, -106, -60, -93, -109, -150, -44, -20, 78, 17, 46, 177, 101, 87, 64, -53, 55, -21, 63, 107, 50, 70, 40, 14, -90, -177, -179, -54, 54, 120, 263, 285, 131, -82, -207, -233, -235, -199, -106, -124, --146, -190, -88, -30, 182, 97, 123, 332, 309, 251, 200, 203, 96, -74, 65, 83, -137, -133, -226, -326, -350, -135, 208, 165, 177, -220, -222, -344, -257, -77, 24, 53, 62, 27, -10, -45, -34, -12, 95, 79, -98, 190, 232, 2, 11, -107, -241, -256, -30, 299, -240, -302, -28, -169, 102, 741, 429, 218, 235, -139, -160, 20, 231, 213, -77, -107, -140, -82, -71, -80, -92, -95, -55, 53, 39, -99, 134, 71, -33, -137, -39, 111, 317, 342, -2, -571, -437, -3, 514, -155, -522, -660, -835, -393, 697, 244, 91, 114, 48, 64, -127, 167, 154, 145, 42, 16, 73, 61, 50, 37, 85, 43, 7, -56, -36, 33, 106, 55, -53, -151, -198, -67, -184, -95, -289, --165, -69, -63, -12, -12, 154, 113, 255, 348, 364, 335, 237, 86, -58, -114, -151, -159, -141, -162, -149, -130, -109, -82, -49, -56, --69, -58, -56, 14, 14, 46, 36, 28, 11, 108, 36, 270, 393, 404, 378, 352, 367, 308, 245, 182, 60, -15, -50, 3, 46, -72, 62, 56, 60, 23, -38, -113, -123, -114, -94, 20, 91, 85, 44, 32, 33, 106, 150, 133, 97, -261, -197, -117, -62, -36, -6, 31, 56, 81, 92, 103, 72, 75, 73, 92, 92, 80, 78, 47, 21, -54, -113, -157, -118, -108, -127, -133, -138, -95, -102, --94, -73, -104, -168, -279, -279, -137, -76, -72, -59, -49, -19, 22, 68, 91, 105, 120, 112, 107, 106, 98, 92, 86, 62, 33, -20, -9, -52, -101, -98, -102, -96, -132, -157, -202, -230, -271, -311, -299, -291, -291, -202, -23, -14, -16, -9, -4, -6, -15, -24, --26, -20, -9, 2, 13, 22, 27, 31, 38, 43, 50, 57, 33, 16, 0, -15, -38, -57, -61, -62, -66, -68, -74, -78, -62, --45, -36, -34, -9, -9, -11, -15, -19, -20, -18, -17, -12, -11, -12, -12, -12, -10, -8, -7, -5, -2, 0, 5, 1, 0, --2, -15, -16, -20, -22, -27, -29, -32, -33, -39, -36, -35, -15, -13, -20, -6, 1, -5, -2, -6, -12, -25, -25, -21, -3, -5, 3, 10, 10, 16, -6, -15, -24, -22, -22, -19, -23, -23, -35, -3, -2, -6, -7, -5, 4, -6, -8, 5, -3, 2, --1, 3, 39, 23, 41, 28, 6, -43, -60, -47, -9, 16, 20, 55, 69, 75, 5, -36, -65, -72, -73, -59, -64, -59, -71, --7, 13, 2, 10, 9, 31, 11, 15, 52, 27, 22, 26, 39, 48, 2, 43, 18, -13, -102, -108, -85, 17, 71, 40, 98, -102, 130, 4, -61, -105, -113, -115, -86, -95, -87, -112, 15, 24, 39, 40, 42, 99, 31, 34, 78, 35, 55, 39, 64, 147, -92, 170, 148, 88, -64, -152, -152, -7, 64, 59, 198, 298, 313, 58, -105, -204, -240, -239, -172, -157, -147, -180, -15, 37, 136, -90, 109, 295, 266, 219, 233, 156, 88, 40, 124, -111, -228, -229, -284, -360, -357, -178, 196, 160, 197, 334, -106, -299, -282, -103, -19, 78, 122, 97, 12, -12, 20, 79, 68, 57, -87, 250, 266, -33, -50, -183, -242, -115, 78, 226, 44, -72, 149, 116, 228, -496, 464, 345, 201, -72, -130, -46, 285, 328, -10, -91, -149, -86, -78, -92, -152, -114, -86, 14, 16, 64, 93, -6, -113, -161, -33, 166, 205, 103, -207, -515, -305, -176, -170, -574, -628, -468, -734, -520, 157, 272, 298, 183, 59, -2, 41, 132, 166, 170, 119, -68, 40, 51, 42, 50, 32, -13, -6, -55, -24, 56, 10, -79, -190, -56, -39, -51, -189, 51, 31, 110, 125, 109, 133, 108, -107, 17, 108, 292, 288, 276, 226, 87, -40, -133, -158, -166, -144, -164, -161, -132, -67, -32, -46, -10, -30, -68, -47, 12, 14, -7, 36, 143, 89, -74, -213, -106, 4, 97, 268, 342, 338, 343, 319, 334, 218, 136, 62, 61, 65, 51, 55, 38, 30, -25, --91, -142, -152, -108, -41, 52, 99, 68, 75, 73, 64, 124, 126, 51, -5, -62, -26, 107, 163, 182, 127, 86, 73, 60, 45, -37, 11, 24, 49, 75, 72, 36, 33, -11, -63, -118, -142, -115, -101, -100, -126, -113, -80, -4, 30, 59, 73, 89, 64, -5, --28, -189, -151, -134, -112, -77, -44, -8, 23, 42, 56, 65, 62, 56, 52, 47, 52, 63, 22, -20, -48, -45, -65, -87, -94, --94, -103, -112, -131, -153, -190, -224, -261, -276, -299, -319, -245, -24, -18, -7, 9, 18, 22, 25, 33, 32, 35, 41, 44, 47, -50, 46, 37, 32, 27, 26, 23, 24, -3, -16, -32, -51, -76, -85, -91, -93, -100, -108, -112, -88, -61, -47, -43, -57, -63, --57, -54, -49, -40, -31, -22, -24, -26, -29, -30, -30, -29, -31, -31, -32, -31, -30, -32, -30, -31, -27, -52, -50, -48, -51, --57, -64, -68, -71, -81, -81, -84, -56, -59, -68, 2, 5, 0, 8, 7, 2, -12, -14, -13, 8, 14, 3, 13, 16, 35, -12, 2, -12, -12, -14, -14, -13, -10, -15, 12, 9, -5, 2, -1, -13, -14, -12, 9, -4, 3, 13, 8, 40, 28, 60, -55, 35, -16, -34, -33, 12, 26, 4, 44, 71, 115, 52, 9, -40, -55, -65, -62, -60, -41, -28, 22, 34, -1, 18, 5, --17, -19, -9, 44, 8, 12, 47, 38, 35, -1, 58, 51, 30, -54, -67, -71, 49, 82, 15, 78, 97, 197, 72, 8, -72, --84, -101, -92, -84, -53, -37, 63, 60, 17, 53, 20, -18, -48, -34, 56, -5, 30, 83, 49, 132, 91, 206, 209, 158, 11, --72, -121, 41, 73, -10, 132, 275, 422, 196, 21, -143, -204, -238, -212, -174, -118, -98, 68, 104, 102, 110, 99, 152, 164, 142, -200, 79, 50, 123, 127, -209, -233, -287, -310, -319, -302, -166, 200, 160, 218, 389, 6, -239, -293, -180, -27, 107, 192, 218, 142, -97, 116, 150, 30, 16, -44, 221, 239, -12, -66, -204, -226, -24, 114, 150, -83, 107, 230, 290, 230, 176, 421, 420, 179, -10, --123, -115, 224, 347, 161, -23, -119, -88, -76, -65, -135, -55, -52, -40, -26, 12, 62, -68, -154, -130, 72, 159, 81, -108, -346, --457, -161, -252, -884, -789, -550, -322, -425, -429, -395, 336, 490, 92, 45, -34, -17, 67, 125, 127, 127, 72, -36, 0, 19, 63, --2, -50, -45, -25, 21, 47, -48, -132, -214, 46, 103, -119, -51, 249, 424, 395, 264, 173, 115, 79, -9, -88, -69, 115, 181, -211, 222, 104, 14, -101, -126, -145, -151, -152, -154, -118, -42, 0, -21, -1, -18, -59, -17, 13, 28, -10, 35, 187, 159, -183, --322, -363, -290, -143, 140, 277, 261, 321, 332, 370, 293, 236, 183, 118, 77, 32, 28, -14, -58, -100, -145, -155, -156, -94, 17, -37, 55, 48, 91, 95, 88, 88, 69, 24, -53, 145, 170, 272, 295, 286, 190, 121, 79, 48, 15, -15, -27, -23, -4, 33, -34, 4, -10, -49, -103, -116, -118, -84, -102, -113, -124, -72, -6, 73, 127, 166, 176, 209, 216, 189, 171, -194, -178, -139, -93, --22, -4, 5, 1, -11, -14, -23, -13, -6, 1, -7, -6, 4, -36, -73, -106, -102, -112, -121, -122, -117, -132, -122, -129, -135, --154, -170, -184, -208, -244, -269, -225, -67, -67, -43, -28, -19, -7, 14, 44, 49, 51, 52, 48, 43, 41, 25, 7, -9, -21, --29, -40, -31, -53, -64, -78, -91, -110, -121, -129, -133, -144, -155, -161, -140, -113, -99, -91, -102, -109, -99, -89, -76, -61, -51, --39, -46, -48, -49, -49, -49, -47, -53, -56, -60, -62, -66, -72, -70, -72, -69, -89, -89, -88, -92, -99, -106, -111, -114, -126, --123, -124, -102, -104, -104, 15, 9, 8, 20, 21, 23, 8, 4, -1, 24, 29, 11, 25, 30, 48, 32, 23, 9, 5, 1, --2, 0, 5, 10, 25, 20, 2, 8, 1, -21, -18, -14, 13, -1, 7, 28, 12, 27, 29, 66, 73, 70, 22, 4, -11, -42, 47, 4, 46, 78, 130, 93, 57, 5, -21, -42, -49, -47, -16, 23, 45, 46, 4, 19, -2, -46, -48, -35, 31, -14, --2, 67, 27, 7, -4, 64, 79, 85, 11, -9, -51, 87, 110, 18, 88, 108, 213, 131, 79, -9, -36, -64, -77, -62, -16, -45, 87, 76, 6, 41, -17, -109, -119, -98, 31, -47, -4, 116, 22, 67, 67, 194, 232, 232, 105, 30, -69, 102, 106, -29, -101, 244, 427, 307, 158, -27, -120, -188, -212, -170, -66, 37, 134, 140, 78, 117, 72, -26, 18, 20, 120, -22, -10, 190, 84, --258, -196, -296, -281, -219, -218, -136, 139, 160, 265, 428, 150, -124, -262, -249, -100, 106, 220, 302, 295, 226, 180, 144, -23, -30, -30, 127, 145, 3, -36, -138, -142, 31, 101, 75, -170, 291, 273, 265, 87, -82, 361, 467, 210, 55, -133, -246, 50, 254, 329, -69, -55, -44, -61, -27, -42, 30, 11, -67, -47, -35, 31, -97, -140, -78, 49, 92, -18, -227, -382, -365, 53, -480, -1253, -645, --261, -207, -274, -364, -547, 275, 473, 39, 18, -68, -61, -12, 53, 70, 85, 57, -29, -2, 24, 62, -17, -59, -77, 7, 56, -29, -69, -117, -125, 100, 135, -205, -142, 482, 706, 508, 232, 85, -1, -12, -68, -121, -156, -92, 70, 156, 196, 126, 59, -21, --72, -104, -130, -129, -114, -67, -17, 13, 14, -11, -27, -34, 15, 20, 38, 29, 57, 140, 268, -216, -280, -380, -327, -185, 20, -141, 165, 255, 299, 320, 287, 253, 238, 139, 70, 11, -25, -82, -141, -155, -170, -173, -135, -79, 24, 2, 4, 23, 62, 74, -90, 24, 3, 5, -81, 251, 247, 285, 276, 258, 200, 163, 134, 88, 41, 10, -9, -26, -34, -5, -1, -27, -37, -51, -80, --76, -74, -69, -99, -107, -93, -10, 66, 126, 169, 190, 186, 210, 232, 236, 246, -149, -145, -102, -55, 8, 11, 1, -14, -33, --38, -42, -34, -25, -18, -34, -45, -50, -72, -91, -112, -123, -136, -145, -139, -135, -143, -127, -109, -103, -89, -83, -67, -100, -143, --176, -155, -130, -129, -107, -95, -85, -67, -38, -7, -3, -4, -8, -11, -16, -15, -31, -46, -61, -71, -81, -90, -84, -95, -103, --112, -119, -128, -139, -151, -162, -175, -190, -201, -186, -167, -156, -145, -122, -126, -115, -104, -93, -82, -75, -66, -71, -69, -67, -66, --65, -63, -70, -73, -78, -83, -88, -97, -95, -98, -97, -103, -105, -107, -113, -119, -125, -130, -133, -144, -136, -133, -126, -125, -105, -26, 15, 18, 30, 34, 40, 25, 20, 12, 35, 39, 24, 36, 40, 53, 46, 40, 31, 21, 15, 10, 13, 17, 30, 32, -26, 9, 13, 4, -17, -16, -11, 19, 5, 12, 40, 17, 14, 29, 64, 80, 93, 53, 37, 14, 58, 58, 16, 47, 76, -122, 117, 96, 56, 16, -13, -26, -23, 8, 56, 58, 50, 8, 11, -14, -52, -66, -53, 20, -27, -9, 76, 17, -14, 0, -70, 101, 128, 65, 39, -17, 97, 117, 48, 98, 115, 193, 167, 135, 67, 12, -26, -52, -36, 11, 88, 84, 71, -7, 5, --59, -140, -163, -139, 13, -69, -29, 124, -3, 2, 48, 166, 229, 275, 173, 114, 6, 126, 113, -3, 67, 186, 356, 360, 270, -121, -15, -110, -164, -127, -11, 145, 167, 142, 66, 82, 15, -148, -122, -104, 35, -113, -67, 211, 25, -252, -146, -236, -198, -126, --161, -143, -8, 130, 300, 424, 360, 106, -180, -236, -158, 28, 153, 255, 309, 254, 155, 54, -98, -82, 91, 32, 27, -16, -14, --46, -2, 94, 93, 6, -198, 425, 256, 121, -87, -287, 233, 401, 232, 101, -143, -381, -140, 97, 341, 157, 42, 27, -34, -4, -64, 92, 66, -46, -21, -50, -14, -97, -88, -40, 12, 9, -104, -311, -375, -219, 247, -821, -1207, -297, 87, -125, -115, -218, -410, -37, 246, 137, 9, -105, -102, -97, -40, 5, 40, 59, 41, 43, 43, 28, -36, -55, -89, 20, 53, 13, -58, -66, 7, 34, -27, -149, -475, 618, 654, 344, 92, 1, -93, -95, -78, -111, -165, -181, -15, 96, 137, 123, 80, 63, -14, -54, -76, -79, -43, -7, 15, 16, 26, -18, -33, -15, 9, 10, 55, 109, 109, 128, 397, -198, -172, -219, -192, -138, -35, 34, 74, 169, 243, 258, -255, 224, 208, 119, 43, -16, -85, -142, -180, -184, -178, -181, -100, -54, -6, -23, -30, -22, 1, 30, 73, -25, -39, -32, -110, -211, 197, 174, 171, 187, 196, 215, 230, 176, 119, 88, 66, 40, 0, 6, -5, -45, -41, -39, -41, -46, -54, -73, -88, -76, --35, 53, 113, 130, 141, 133, 120, 136, 156, 175, 183, -50, -53, -20, -4, 12, 2, -10, -14, -17, -5, 9, 0, -7, -10, --37, -63, -87, -89, -96, -103, -117, -128, -139, -124, -118, -114, -94, -54, -34, 11, 37, 78, 46, 9, -21, -25, -168, -159, -149, --144, -132, -116, -98, -86, -84, -87, -89, -84, -79, -69, -77, -82, -89, -96, -102, -108, -107, -109, -113, -116, -121, -124, -132, -143, --159, -171, -184, -199, -190, -182, -179, -165, -118, -117, -112, -105, -102, -100, -99, -95, -92, -86, -82, -78, -77, -74, -79, -83, -87, --92, -97, -104, -103, -103, -102, -103, -103, -103, -109, -114, -116, -120, -123, -129, -119, -116, -122, -121, -100, 31, 23, 25, 35, 41, -51, 37, 31, 22, 36, 40, 35, 40, 43, 49, 51, 49, 44, 30, 22, 15, 22, 26, 38, 33, 28, 13, 13, 6, -5, --10, -5, 22, 11, 16, 43, 23, 14, 31, 59, 80, 106, 75, 59, 32, 56, 55, 37, 49, 71, 99, 125, 119, 92, 44, -12, -3, 6, 30, 63, 60, 46, 3, -2, -24, -43, -70, -62, 2, -31, -12, 61, 13, -8, 12, 75, 114, 160, 106, 75, -15, 74, 93, 86, 101, 114, 148, 176, 164, 121, 42, -1, -33, -9, 30, 81, 66, 53, -34, -34, -92, -128, -182, -156, -12, --72, -38, 96, -8, -24, 36, 127, 208, 299, 224, 172, 66, 104, 93, 61, 64, 151, 263, 365, 337, 241, 79, -27, -86, -44, -47, 177, 161, 118, 41, 14, -58, -177, -225, -201, -44, -172, -104, 160, -12, -155, -65, -83, -60, -93, -117, -145, -151, 63, 255, -324, 459, 260, -148, -199, -202, -106, 6, 82, 146, 124, 22, -69, -169, -121, 123, -25, -58, -51, -27, 30, 152, 167, 113, -15, --135, 431, 157, -15, -191, -388, 34, 224, 201, 135, -117, -433, -273, -61, 209, 226, 169, 101, 22, 33, 141, 117, 98, 5, 30, --31, -62, -80, -37, -21, 3, -52, -192, -382, -355, -74, 325, -986, -980, -151, 167, 34, 70, -71, -288, -234, 2, 314, 44, -117, --132, -160, -130, -78, -10, 41, 69, 64, 34, -28, -64, -56, -82, 11, 25, 4, -31, -26, 59, -95, -95, 20, -687, 558, 286, -81, 3, 93, -74, -104, -48, -53, -102, -150, -48, 46, 65, 99, 100, 123, 40, -2, -17, -12, 28, 69, 43, 13, 2, -16, --26, -3, -1, 9, 102, 154, 142, 213, 472, -144, -49, -16, -35, -71, -46, -12, 35, 100, 183, 216, 221, 188, 154, 96, 21, --50, -124, -164, -173, -185, -168, -162, -64, -26, -31, -35, -48, -61, -43, -3, 48, -28, -44, -80, -130, 87, 53, 5, 40, 109, -184, 248, 299, 261, 219, 197, 173, 145, 86, 60, 24, -30, -23, -31, -37, -54, -65, -80, -65, -34, 18, 83, 110, 88, 79, -57, 42, 52, 61, 79, 75, 81, 85, 106, 91, 65, 42, 32, 37, 44, 59, 76, 40, 9, -17, -41, -65, -91, -86, -85, --84, -94, -101, -111, -86, -75, -60, -32, 26, 63, 113, 143, 188, 163, 143, 123, 109, -137, -123, -129, -127, -117, -109, -108, -116, --116, -120, -117, -108, -95, -82, -85, -86, -89, -94, -100, -106, -110, -108, -112, -115, -120, -125, -121, -122, -129, -128, -126, -130, -124, --127, -129, -116, -97, -89, -91, -90, -94, -98, -99, -99, -93, -88, -86, -83, -82, -79, -83, -86, -88, -92, -95, -99, -100, -101, --102, -101, -103, -105, -104, -104, -101, -100, -98, -96, -89, -86, -102, -100, -97, 27, 24, 25, 31, 37, 50, 38, 32, 19, 25, -29, 38, 35, 36, 36, 45, 45, 42, 28, 21, 14, 21, 24, 32, 26, 22, 7, 9, 3, -3, -9, -4, 13, 11, 15, -32, 22, 15, 26, 42, 65, 100, 82, 64, 28, 36, 39, 55, 47, 61, 70, 113, 118, 100, 58, 30, 15, 26, 38, 46, -49, 33, -17, -16, -30, -40, -64, -62, -30, -31, -13, 21, 7, 7, 29, 65, 105, 163, 127, 93, 18, 31, 51, 113, 95, -104, 97, 158, 159, 131, 54, 15, -14, 8, 34, 39, 40, 32, -73, -60, -114, -125, -181, -151, -60, -57, -30, 39, -2, -31, -23, 64, 157, 281, 243, 187, 66, 53, 61, 132, 85, 134, 181, 328, 345, 290, 144, 56, 6, 42, 86, 136, 128, 84, -19, --59, -116, -156, -279, -260, -132, -185, -109, 46, -40, 21, 56, 126, 98, -78, -55, -97, -197, -5, 140, 167, 381, 265, -140, -186, --245, -252, -156, -125, -105, -84, -136, -176, -195, -124, 126, -41, -72, -46, -20, 95, 269, 237, 160, 26, 14, 298, 33, -107, -225, --370, -161, 24, 145, 166, -31, -367, -339, -195, 27, 230, 267, 166, 110, 100, 191, 118, 95, 50, 66, -6, -92, -61, -6, -7, -9, -78, -245, -437, -329, 45, 275, -818, -631, -192, 45, 267, 198, 1, -217, -399, -181, 371, 100, -67, -145, -181, -183, -149, -64, --20, -3, 23, -11, -76, -93, -65, -54, 3, 9, -3, -7, -16, 6, -143, -122, 51, -625, 329, -58, -18, 54, 229, 100, 29, --37, -18, -52, -71, -57, -2, -5, 75, 124, 143, 90, 58, 34, 48, 74, 99, 57, 7, -28, -18, -9, 11, 6, 23, 113, -99, 99, 277, 405, -58, 49, 113, 55, -55, -74, -58, -23, 26, 100, 158, 168, 152, 117, 75, 6, -71, -122, -146, -149, -163, --135, -101, -28, -1, -28, -33, -46, -53, -41, -16, 6, -4, -25, -90, -109, -54, -100, -144, -83, 16, 127, 200, 254, 267, 272, -280, 256, 224, 159, 125, 74, 7, -4, -37, -65, -82, -82, -74, -32, 6, 52, 72, 65, 26, 20, 9, -3, 2, -2, 1, --29, 175, 183, 192, 172, 140, 110, 101, 104, 101, 100, 100, 51, 8, -35, -48, -63, -81, -74, -68, -64, -67, -70, -79, -38, --13, 21, 47, 100, 136, 161, 177, 202, 194, 196, 192, 182, -69, -52, -60, -61, -55, -56, -64, -77, -83, -88, -87, -85, -77, --72, -72, -74, -76, -81, -87, -94, -101, -99, -104, -109, -119, -127, -112, -103, -96, -80, -63, -49, -48, -53, -55, -46, -61, -49, --55, -58, -65, -69, -69, -70, -70, -71, -73, -74, -76, -77, -78, -79, -80, -81, -82, -83, -86, -89, -93, -89, -93, -102, -93, --87, -79, -73, -67, -57, -55, -51, -69, -65, -86, 20, 21, 23, 25, 29, 42, 35, 29, 12, 15, 19, 38, 29, 29, 25, -37, 37, 34, 23, 18, 14, 17, 18, 19, 16, 13, -3, 1, -4, -12, -10, -5, -3, 10, 13, 16, 18, 10, 21, 24, -46, 82, 79, 60, 12, 17, 27, 69, 45, 49, 48, 96, 106, 91, 64, 44, 32, 34, 35, 25, 30, 15, -35, -19, -24, --42, -43, -48, -59, -25, -11, -18, -2, 15, 46, 50, 84, 139, 130, 99, 3, 2, 21, 132, 86, 90, 66, 135, 142, 115, -60, 30, 10, 16, 24, -3, 10, 9, -105, -73, -120, -152, -165, -131, -113, -35, -13, -15, 2, -40, 11, 7, 95, 224, 233, -173, 27, 10, 46, 192, 103, 110, 123, 275, 319, 280, 184, 121, 83, 92, 93, 60, 74, 45, -91, -96, -130, -140, -263, -253, --214, -155, -88, -74, -64, 180, 185, 290, 218, -33, 13, -22, -126, -38, 21, 29, 233, 201, -84, -167, -264, -348, -275, -265, -274, --243, -238, -236, -158, -78, 100, -20, -26, 7, 26, 147, 295, 270, 205, 103, 154, 110, -62, -143, -209, -295, -275, -118, 93, 183, -75, -233, -340, -276, -100, 155, 271, 210, 199, 173, 199, 103, 70, 65, 69, 5, -89, -44, 6, -9, -6, -94, -232, -404, -267, -122, 156, -475, -296, -278, -87, 430, 258, 88, -53, -382, -269, 268, 160, 42, -137, -156, -180, -178, -104, -80, -94, -42, -55, -95, --103, -62, -19, 12, 4, -3, 11, -4, -72, -64, -58, -110, -413, 51, -52, 130, 195, 241, 283, 218, 33, 8, -40, -19, -64, --32, -35, 61, 118, 121, 118, 109, 79, 86, 92, 104, 54, 2, -33, -14, 4, 5, -1, 20, 57, 2, 10, 175, 140, 32, -93, 145, 96, -42, -99, -116, -97, -59, -3, 69, 84, 93, 87, 51, 0, -59, -86, -102, -114, -111, -73, -24, 4, 15, -13, --24, -23, -11, -12, -12, -29, 6, 1, -28, -31, -142, -187, -191, -144, -71, 6, 61, 115, 186, 241, 281, 269, 241, 185, 149, -96, 28, -12, -56, -90, -100, -84, -51, 1, 32, 56, 33, 7, -20, -17, -13, -20, -23, -41, -58, -97, 171, 169, 163, 157, -145, 135, 136, 141, 124, 103, 87, 40, -1, -45, -49, -57, -66, -55, -46, -40, -39, -40, -47, 0, 37, 89, 105, 137, 158, -150, 140, 135, 142, 157, 164, 160, 24, 48, 40, 33, 26, 16, 1, -10, -25, -35, -42, -51, -57, -66, -65, -66, -68, -74, --81, -87, -89, -82, -80, -81, -88, -90, -75, -62, -49, -26, -2, 15, 20, 18, 23, 35, -22, -9, -20, -24, -30, -33, -35, --38, -43, -50, -57, -62, -67, -73, -72, -72, -72, -71, -70, -70, -70, -71, -75, -65, -67, -78, -68, -60, -52, -45, -39, -27, --22, -16, -31, -25, -72, 12, 13, 19, 16, 19, 28, 27, 21, 2, 5, 9, 34, 20, 19, 15, 27, 28, 25, 18, 14, -11, 10, 10, 10, 4, 2, -11, -6, -11, -24, -12, -8, -19, 5, 10, 4, 11, -1, 15, 9, 26, 55, 65, 49, -3, -1, 15, 73, 31, 27, 26, 70, 84, 76, 62, 48, 39, 30, 21, 9, 5, -6, -42, -16, -13, -44, -21, -28, -69, -16, --9, -39, -13, 11, 53, 35, 61, 98, 115, 89, -15, -18, 0, 137, 63, 63, 42, 108, 118, 96, 61, 38, 28, 12, 3, --22, -24, -20, -119, -78, -113, -188, -137, -107, -153, -18, 1, -44, -3, -55, 3, -25, 40, 140, 195, 146, -9, -24, 33, 221, -84, 46, 58, 202, 267, 247, 196, 152, 127, 96, 69, -2, 4, -7, -125, -82, -91, -106, -183, -180, -240, -107, -60, -147, -83, -252, 268, 359, 285, 67, 52, 9, -24, -47, -60, -65, 101, 153, 54, -110, -241, -354, -327, -322, -320, -302, -264, -242, -67, 1, -54, 13, 19, 42, 57, 143, 216, 240, 226, 174, 223, -37, -94, -131, -182, -233, -312, -179, 73, 169, 141, -93, -308, -325, -169, -30, 180, 210, 234, 201, 163, 68, 34, 50, 45, -4, -65, -17, -5, -21, -20, -67, -165, -286, -174, 139, 39, -226, -45, -271, --104, 493, 274, 148, 87, -307, -302, 94, 206, 170, -83, -103, -141, -159, -124, -109, -124, -70, -67, -92, -81, -36, 12, 12, 2, -11, 11, 34, -67, 28, 11, -271, -245, -157, 255, 251, 167, 36, 247, 300, 201, 56, -40, -17, -77, -55, -34, 29, 61, 75, -112, 128, 111, 104, 97, 96, 35, -1, -17, -5, -3, -6, -14, 1, -3, -29, -59, -90, -219, 127, 105, 125, 121, -2, -80, --154, -168, -142, -99, -31, -4, 23, 49, 27, 7, -15, -37, -49, -58, -39, 1, 42, 31, 21, -2, -4, 5, 12, 10, 4, --31, -6, 19, 71, 104, -158, -171, -133, -134, -128, -109, -73, -22, 77, 148, 193, 202, 192, 159, 127, 75, 8, -39, -71, -92, --97, -71, -27, 19, 35, 29, -7, -28, -32, -28, -23, -37, -42, -68, -95, -129, 74, 55, 37, 47, 53, 77, 97, 114, 101, -87, 78, 41, 9, -27, -32, -38, -44, -36, -32, -33, -18, -12, -9, 28, 67, 122, 120, 123, 125, 94, 67, 38, 52, 67, -73, 67, 98, 113, 105, 93, 77, 62, 47, 39, 18, 3, -10, -26, -40, -57, -54, -55, -56, -61, -65, -70, -68, -50, -39, --30, -28, -17, -7, 7, 21, 40, 62, 75, 78, 76, 83, 93, 4, 12, 3, 0, -3, -6, -10, -14, -21, -28, -37, -43, --50, -58, -55, -56, -55, -54, -53, -51, -51, -50, -54, -34, -34, -42, -36, -30, -24, -19, -14, -5, 1, 9, -2, 3, -49, -8, 10, 18, 13, 15, 20, 23, 19, 0, 2, 6, 33, 14, 14, 12, 20, 22, 22, 15, 12, 10, 7, 5, 7, -2, --5, -12, -8, -12, -25, -10, -7, -23, 4, 9, -1, 7, -5, 15, 6, 17, 34, 56, 45, -4, -5, 8, 73, 16, 5, -11, 42, 60, 66, 55, 44, 36, 21, 8, 7, -15, -21, -33, -14, -8, -41, -2, -7, -60, -4, -3, -37, -15, 8, 56, -31, 52, 68, 106, 85, -13, -23, -11, 136, 39, 37, 30, 78, 91, 90, 60, 39, 34, 5, -14, -12, -54, -53, -101, -77, --95, -187, -100, -79, -154, -7, 11, -48, -5, -54, 4, -27, 9, 70, 164, 139, -7, -39, 22, 221, 46, -28, -5, 112, 191, -212, 181, 144, 127, 67, 28, -31, -60, -48, -99, -39, -33, -46, -81, -87, -182, -57, -33, -161, -86, 248, 289, 367, 334, 209, -75, 3, 49, -33, -78, -93, 75, 198, 243, 7, -160, -272, -308, -306, -277, -270, -224, -184, 32, 55, 15, 25, 15, 31, 30, -84, 97, 163, 209, 213, 228, -96, -67, -93, -152, -185, -304, -201, 75, 134, 167, 56, -234, -332, -210, -72, 76, 181, 209, 170, -97, 21, -2, 33, 11, -20, -27, -5, -13, -13, -20, -24, -65, -155, -92, 109, -34, -56, 179, -115, -2, 450, 314, 231, 208, --187, -262, -54, 224, 277, 46, -29, -94, -110, -112, -89, -76, -36, -35, -62, -35, -2, 14, 4, 7, 11, 5, 25, -4, 42, -30, -255, -129, -224, 447, 127, -63, -233, -8, 202, 387, 159, 25, -32, -67, -62, -35, -21, -5, 32, 86, 121, 129, 111, 98, -68, 8, -6, -6, -5, -8, -6, -10, -4, -16, -15, -80, -352, -463, 268, 184, 136, 133, 62, -11, -122, -178, -173, -136, -79, --54, -20, 32, 30, 34, 34, 17, 15, 22, 49, 79, 85, 46, 22, 4, 9, 12, 12, 9, 12, -9, -12, 41, 156, 284, --112, -82, -33, -66, -103, -128, -104, -63, 25, 73, 92, 109, 111, 99, 76, 35, -22, -52, -63, -69, -71, -44, -2, 24, 21, --3, -26, -32, -26, -21, -22, -42, -51, -75, -99, -113, -20, -49, -64, -52, -44, 3, 36, 64, 70, 80, 92, 75, 59, 40, -26, 14, 4, 1, -6, -19, 4, 20, 35, 51, 78, 109, 96, 81, 74, 44, 17, -16, -6, 1, 3, -11, 120, 127, 122, -113, 100, 92, 84, 82, 64, 47, 31, 15, 2, -15, -13, -13, -14, -17, -17, -22, -23, 4, 21, 36, 45, 69, 72, 78, -83, 89, 97, 101, 100, 97, 104, 109, 33, 39, 35, 35, 36, 33, 30, 28, 22, 17, 11, 7, 2, -5, -3, -3, -3, --3, -3, 0, -5, -5, -14, 18, 16, 8, 7, 9, 10, 13, 15, 18, 27, 36, 24, 31, 7, -3, 3, 7, 4, 5, -6, 12, 8, -9, -9, -6, 20, 1, 0, 1, 3, 5, 11, 3, 1, -2, -2, -1, 6, -14, -14, -7, -9, -9, -17, --6, -5, -19, 0, 0, -4, 1, -7, 8, -1, 4, 8, 37, 31, -10, -18, -7, 54, -2, -19, -14, 0, 17, 41, 31, -23, 15, 8, -6, 5, -32, -37, -23, -29, -29, -48, -5, -4, -48, -3, -4, -33, -17, 6, 47, 25, 42, 39, 86, 70, --10, -32, -27, 105, 11, 9, 5, 27, 40, 69, 39, 21, 14, -6, -26, 1, -81, -76, -63, -73, -71, -126, -63, -53, -112, --5, 9, -46, -10, -39, 5, -20, -11, 7, 123, 123, 2, -50, -1, 173, 14, -76, -71, -9, 75, 150, 129, 99, 78, 29, --10, -31, -88, -55, -41, -7, -5, -2, -14, -22, -86, -22, -14, -130, -75, 206, 244, 337, 353, 309, 81, -20, 61, -39, -91, --107, 54, 221, 348, 122, -54, -163, -248, -256, -212, -205, -156, -82, 76, 54, 0, 14, 0, 9, 3, 22, 22, 70, 141, 182, -191, -88, -8, -48, -128, -163, -301, -242, 28, 54, 134, 163, -154, -319, -262, -141, -1, 126, 141, 95, 14, -28, -28, 20, -17, --20, -5, -5, -3, -3, -4, -10, -6, -47, -38, 48, -59, 98, 311, 50, 72, 289, 321, 287, 257, -53, -187, -180, 161, 296, -193, 36, -61, -67, -86, -47, 2, 20, 10, -23, 5, 9, 4, 3, 3, 2, 3, 4, 5, 22, 8, -135, -21, -215, 186, --185, -314, -395, -302, -39, 365, 240, 127, -67, -66, -92, -83, -90, -62, -10, 44, 87, 114, 101, 76, 18, -11, -8, -3, -4, --4, -3, -3, -3, -5, -5, -81, -413, -456, 410, 307, 129, 53, 46, -5, -96, -168, -185, -156, -112, -91, -53, 16, 34, 51, -59, 57, 69, 91, 118, 126, 86, 40, 11, 4, 7, 7, 6, 4, 6, 6, -2, 67, 174, 409, -52, -8, 18, -14, -53, --90, -80, -66, -9, 8, 1, 10, 10, 5, -1, -17, -47, -56, -53, -48, -42, -17, 18, 18, 6, -14, -17, -15, -12, -7, --8, -24, -38, -54, -71, -67, -79, -108, -112, -101, -95, -56, -30, -9, 16, 47, 79, 88, 95, 99, 78, 60, 43, 32, 18, --1, 22, 39, 56, 53, 59, 56, 47, 27, 27, 3, -12, -38, -40, -45, -50, -67, 89, 71, 72, 70, 66, 68, 70, 74, -69, 59, 49, 41, 35, 29, 29, 31, 32, 32, 34, 30, 33, 53, 68, 84, 98, 119, 113, 109, 105, 95, 90, 86, 82, -79, 81, 74, 47, 43, 47, 49, 52, 51, 50, 50, 48, 48, 48, 48, 47, 45, 45, 45, 44, 44, 43, 45, 42, 43, -39, 57, 56, 58, 52, 51, 48, 48, 47, 44, 47, 49, 48, 49, 52, -16, -9, -4, -6, -6, -9, 1, -2, -14, -18, --17, 1, -10, -12, -13, -16, -15, -4, -11, -12, -17, -15, -14, -4, -27, -27, -11, -20, -18, -17, -11, -12, -21, -11, -13, --15, -11, -12, -1, -7, -7, -15, 19, 20, -7, -24, -20, 23, -10, -28, -37, -46, -33, 6, 1, -2, -12, -11, -21, -1, --48, -52, -16, -53, -57, -52, -19, -10, -33, -11, -14, -33, -21, 1, 36, 20, 34, 12, 70, 63, 12, -28, -33, 55, 6, -0, -16, -33, -26, 33, 7, -4, -20, -23, -37, 1, -92, -82, -28, -62, -48, -56, -28, -30, -55, -9, -5, -44, -19, -25, -5, -10, -22, -43, 85, 111, 39, -36, -18, 92, 13, -73, -117, -138, -69, 59, 56, 39, 11, -12, -36, -24, -77, -27, 1, -5, 15, 15, 5, 5, -14, -6, -7, -82, -57, 157, 169, 288, 341, 352, 108, 1, 77, -22, -65, -64, 57, 235, 395, 248, -84, -51, -169, -193, -153, -147, -78, 4, 55, 20, -2, 0, -6, -6, -2, 1, 2, 9, 57, 100, 125, -47, 52, 7, -77, --131, -275, -265, -43, -8, 106, 229, -62, -262, -291, -179, -42, 75, 80, 35, -44, -47, -26, 5, -21, -9, -1, 1, 2, 3, -2, -1, 0, -9, -5, 11, -38, 218, 352, 161, 84, 76, 292, 321, 247, 76, -102, -265, 51, 244, 308, 111, -10, -27, -43, --4, 56, 51, 29, 1, 12, 4, 1, 0, -1, -1, -2, 1, -1, 4, 14, -73, 48, -215, -346, -386, -346, -384, -411, -235, -137, 266, 240, -44, -46, -115, -127, -132, -93, -49, -3, 30, 62, 62, 25, -20, -8, -3, 0, 0, 1, 1, 1, 0, 0, -1, -39, -281, -250, 441, 369, 83, -71, -37, -61, -86, -121, -159, -150, -119, -99, -59, 9, 33, 53, 69, 85, 108, 127, 143, -117, 53, 15, -2, 2, 0, -1, -2, -2, -3, 2, -7, 66, 132, 364, 0, 45, 50, 38, 9, -28, -43, -62, -40, -41, --53, -52, -62, -75, -66, -58, -55, -48, -35, -28, -15, 10, 25, 10, -1, -5, -1, 3, 4, 6, 6, 3, -9, -13, -25, --5, -106, -117, -106, -100, -90, -69, -57, -50, -25, 4, 33, 59, 83, 106, 88, 70, 52, 43, 35, 21, 28, 35, 41, 26, -19, 3, -2, -15, -12, -25, -34, -50, -64, -80, -91, -101, 16, -7, 2, 10, 16, 25, 35, 46, 54, 57, 58, 58, 59, -64, 62, 65, 66, 67, 69, 67, 64, 77, 85, 91, 98, 104, 92, 80, 71, 57, 47, 42, 35, 32, 28, 15, 46, 40, -48, 51, 55, 57, 59, 61, 62, 66, 70, 74, 77, 79, 79, 78, 77, 76, 74, 75, 71, 68, 64, 74, 72, 78, 73, -70, 66, 64, 60, 53, 51, 50, 48, 47, 82, -27, -19, -15, -15, -15, -22, -10, -11, -16, -24, -25, -19, -18, -19, -24, --32, -33, -21, -24, -25, -30, -26, -25, -14, -37, -35, -14, -28, -27, -20, -18, -17, -18, -21, -24, -23, -21, -17, -10, -11, --15, -34, 1, 8, 1, -25, -30, -16, -11, -26, -54, -81, -76, -33, -28, -24, -36, -27, -33, -11, -54, -59, -19, -69, -70, --43, -23, -14, -15, -20, -26, -33, -26, -4, 23, 19, 27, -14, 50, 53, 43, -16, -32, -10, 13, 8, -33, -82, -86, -16, --27, -27, -52, -41, -45, -8, -82, -62, -4, -30, -11, -9, -4, -8, -7, -10, -18, -36, -23, -16, 5, 2, -23, -81, 39, -86, 83, -13, -36, -15, 24, -36, -138, -232, -196, -50, -19, -15, -46, -45, -46, -19, -36, 8, 6, 9, 9, 4, 3, 2, -2, 1, -4, -42, -37, 106, 104, 220, 290, 357, 157, 65, 112, 17, -16, 4, 66, 218, 368, 335, 208, 36, -94, -136, -114, --94, -19, 35, 13, 1, -4, -4, -5, -2, -2, -1, 0, -2, 7, 30, 60, 7, 87, 62, 6, -57, -200, -236, -100, -30, -97, 237, 26, -168, -278, -209, -93, 13, 34, 10, -50, -24, -6, -6, -9, 0, 2, 2, 2, 1, 1, 0, 2, -2, -4, -8, 8, 275, 345, 203, 56, -97, 239, 345, 246, 200, -6, -283, -57, 148, 333, 195, 84, 25, 11, 27, 63, 37, 15, 7, -3, 0, -1, -2, -1, -2, 0, -3, 2, -7, 22, -40, 49, -236, -737, -370, -180, -241, -296, -275, -136, 213, 298, 63, -8, --121, -134, -148, -115, -85, -52, -35, -8, 2, -19, -17, 2, 0, 2, 2, 2, 1, 2, 1, 4, -1, 8, -94, -64, 273, -259, 4, -147, -123, -116, -78, -59, -114, -134, -119, -94, -53, -3, 21, 46, 78, 101, 121, 130, 124, 73, 16, -2, -1, -2, --3, -3, -3, -3, -5, -1, -11, 13, 85, 175, 60, 97, 90, 97, 69, 30, -13, -52, -68, -74, -82, -82, -93, -113, -90, --67, -47, -29, -10, 3, 21, 33, 26, 7, 2, 6, 6, 7, 6, 8, 9, 11, 9, 19, 20, 44, -84, -83, -70, -71, --63, -53, -47, -48, -33, -21, -8, 16, 41, 66, 58, 49, 39, 39, 39, 40, 30, 21, 14, 0, -9, -16, -15, -16, -13, --16, -21, -29, -45, -64, -79, -79, -38, -57, -42, -26, -13, -2, 12, 26, 40, 51, 60, 67, 73, 85, 81, 83, 83, 83, -82, 82, 80, 76, 71, 65, 61, 49, 36, 23, 14, 2, -8, -11, -17, -17, -22, -36, 40, 29, 38, 41, 45, 50, 54, -57, 60, 64, 69, 75, 80, 86, 84, 83, 82, 81, 80, 78, 79, 78, 81, 72, 74, 83, 80, 76, 72, 68, 64, 56, -48, 41, 48, 43, 84, -31, -24, -21, -19, -19, -28, -17, -15, -11, -23, -27, -33, -20, -20, -28, -37, -38, -32, -30, -30, --33, -31, -31, -25, -35, -35, -20, -37, -37, -25, -24, -22, -16, -26, -29, -30, -27, -23, -19, -14, -18, -42, -13, -2, 14, --20, -33, -47, -11, -19, -54, -85, -89, -60, -45, -36, -45, -36, -33, -17, -53, -58, -22, -53, -48, -23, -15, -9, 2, -22, --31, -28, -27, -9, 4, 14, 16, -31, 25, 37, 73, -2, -28, -66, 14, 15, -36, -92, -104, -57, -48, -38, -63, -46, -42, --20, -47, -19, 7, 1, 10, 4, 4, -1, 5, -5, -20, -29, -22, -16, -9, 5, -22, -94, -5, 55, 121, 10, -51, -110, -18, -1, -123, -238, -241, -137, -76, -49, -74, -55, -38, -11, 2, 11, -2, 0, -3, -2, -1, 0, -2, 2, 4, -17, -23, -65, 66, 129, 191, 309, 175, 105, 109, 60, 47, 65, 74, 169, 279, 347, 277, 99, -16, -72, -77, -48, 13, 16, -4, -3, --1, 1, 1, 1, 0, 0, 0, -1, 0, 2, 25, 38, 78, 87, 76, 25, -102, -161, -115, -28, 78, 177, 81, -62, -207, --212, -149, -61, -17, -4, -21, 8, 2, -8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, -3, 23, 232, 286, 168, -8, -175, 131, 270, 192, 223, 49, -230, -124, 38, 248, 237, 179, 89, 71, 53, 44, 7, 0, 5, -2, -1, -1, 0, 0, -0, 0, 0, 1, -4, 5, -13, 24, -234, -733, -247, -26, -76, -115, -200, -280, 70, 226, 170, 26, -102, -116, -140, -126, -108, --86, -80, -64, -43, -25, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 2, 1, -2, -3, 6, -13, -49, -108, -138, -109, --58, -22, -71, -110, -108, -86, -50, -24, 2, 31, 73, 94, 107, 108, 80, 31, -5, -3, -2, -2, -1, -1, 0, 0, 0, --3, 2, -17, 27, 2, 87, 120, 105, 110, 77, 42, -7, -39, -78, -88, -94, -89, -92, -106, -71, -47, -30, -7, 15, 34, -43, 37, 13, 4, 5, 4, 2, 1, 0, 0, 1, 1, 7, 8, 30, 54, -51, -47, -40, -45, -41, -37, -34, -38, -32, --32, -32, -24, -14, -4, -2, 0, 1, 7, 10, 20, 6, -5, -10, -16, -14, -7, -4, -1, 1, 2, 0, -1, -16, -29, --45, -46, -61, -65, -52, -38, -27, -20, -11, 0, 11, 22, 33, 40, 47, 57, 57, 60, 61, 63, 64, 68, 65, 48, 36, -25, 14, -1, -9, -15, -22, -29, -36, -41, -45, -46, -49, -55, 12, 5, 10, 12, 15, 19, 23, 25, 28, 30, 34, 39, -43, 48, 47, 48, 48, 48, 48, 47, 50, 50, 56, 38, 43, 49, 45, 40, 36, 32, 29, 24, 18, 11, 21, 15, 45, --27, -22, -22, -18, -18, -25, -18, -16, -7, -20, -24, -35, -19, -18, -25, -30, -32, -32, -28, -26, -27, -26, -26, -23, -27, --29, -24, -35, -33, -22, -21, -18, -9, -22, -24, -25, -24, -21, -23, -14, -17, -34, -18, -8, 17, -16, -31, -57, -14, -14, --42, -63, -72, -65, -48, -37, -38, -28, -22, -23, -40, -33, -9, -17, -14, -5, -4, -3, 7, -14, -28, -22, -21, -11, -16, -5, 5, -27, 4, 14, 71, -1, -27, -88, 0, 9, -31, -66, -82, -71, -51, -37, -49, -31, -27, -14, -3, 6, 5, 5, -6, 3, 2, 0, 0, 3, -4, -17, -18, -16, -26, 0, -16, -69, -26, 25, 112, 9, -59, -145, -6, 8, -87, -168, -194, --161, -98, -61, -65, -40, -15, 2, 4, -2, -3, -2, -2, -1, -1, 0, 0, -1, 3, 2, -11, 35, 40, 45, 85, 208, -136, 89, 52, 72, 78, 67, 50, 87, 155, 258, 241, 117, 42, -9, -31, -6, 13, -1, -1, 0, 1, 1, 1, 1, 0, -0, 1, 0, -1, -2, 7, 33, 43, 72, 97, 74, -20, -77, -90, -18, 48, 97, 93, 13, -114, -177, -175, -116, -68, -30, --4, 11, -2, -1, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 1, -4, 131, 189, 105, -13, -157, 23, 143, 130, -173, 69, -127, -121, -33, 123, 206, 210, 133, 103, 64, 25, -6, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -3, -6, -161, -455, -155, -5, 39, 7, -90, -223, -45, 100, 207, 69, -36, -76, -98, -100, -100, -86, -81, -76, -45, -3, -3, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 1, -1, 21, -131, -202, -4, 34, -27, -12, 1, 2, -32, -69, -70, --67, -41, -32, -6, 20, 50, 67, 76, 79, 47, 3, -6, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, -2, 3, -28, -86, 99, 76, 66, 45, 24, -9, -20, -55, -67, -75, -70, -67, -67, -34, -14, -4, 17, 34, 50, 48, 26, 2, 3, 0, --1, -1, -2, -2, -2, -2, -3, 0, -1, 5, 37, -16, -8, -7, -12, -15, -16, -15, -19, -20, -26, -33, -36, -37, -40, --34, -28, -23, -17, -15, -6, -15, -16, -10, -5, 1, 3, 3, 5, 5, 6, 6, 8, 5, -1, -5, -7, -45, -40, -34, --28, -22, -18, -15, -10, -4, 2, 8, 12, 16, 20, 23, 26, 30, 33, 35, 41, 39, 19, 7, -3, -8, -10, -11, -13, --15, -17, -18, -24, -30, -35, -40, -40, -6, -8, -7, -6, -4, -2, -1, 0, 1, 2, 4, 6, 8, 10, 11, 12, 13, -14, 15, 15, 18, 19, 24, 10, 10, 9, 6, 2, -1, -4, -7, -8, -8, -9, -2, -5, 8, -20, -18, -19, -15, -15, --18, -16, -14, -6, -16, -19, -28, -17, -16, -19, -20, -22, -25, -21, -20, -18, -17, -18, -23, -20, -21, -18, -21, -20, -14, --14, -12, -5, -17, -19, -21, -19, -18, -22, -14, -14, -21, -17, -11, 8, -16, -27, -46, -17, -14, -28, -36, -43, -50, -39, --29, -24, -15, -13, -17, -9, -3, 2, 1, 1, 2, 1, 1, 3, -1, -10, -15, -15, -13, -27, -5, -4, -13, -7, -3, -42, -8, -25, -70, -16, -5, -23, -33, -45, -56, -40, -28, -25, -11, -6, 2, 4, 1, 0, 0, 0, 0, 0, 0, -1, -1, 4, 1, -8, -10, -35, -8, -12, -30, -25, 3, 67, -6, -56, -116, -26, -4, -51, -83, -109, -124, -86, -55, -38, -13, -1, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, -1, -2, 1, 1, 11, 20, -1, 18, 99, 72, 47, -7, 61, 76, -42, 18, 21, 58, 135, 151, 105, 69, 33, 11, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, --1, 5, 26, 45, 78, 75, 27, -14, -54, -13, 20, 46, 80, 47, -38, -107, -138, -119, -88, -52, -15, -1, -2, 1, -1, -0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 4, -6, 32, 86, 45, -17, -101, -48, 25, 67, 95, 56, -43, -88, -59, -30, 119, 154, 126, 96, 59, 17, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 4, -12, -37, -197, --103, -32, 92, 35, -33, -106, -87, -3, 139, 83, 29, -33, -47, -57, -67, -58, -50, -50, -15, 5, -1, 0, 0, 0, 0, -0, 0, 0, 0, 0, -1, 2, -6, 18, -70, -170, 72, 130, 96, 80, 60, 28, -5, -37, -39, -52, -40, -36, -13, 3, -18, 34, 41, 51, 17, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -3, 12, 46, 48, 13, -6, -13, --20, -30, -23, -33, -36, -41, -39, -35, -28, -7, 7, 13, 26, 32, 42, 29, 3, 0, -1, -1, 0, 0, 0, 0, 0, --1, 0, -2, -1, -3, -2, 9, 21, 18, 15, 7, 1, -3, -8, -16, -24, -32, -34, -36, -40, -35, -31, -27, -25, -24, --21, -19, -8, 1, 2, 1, 0, 0, 0, 1, 0, 1, 0, 2, 3, 3, 7, -25, -22, -21, -21, -21, -19, -19, -19, --16, -14, -13, -12, -12, -12, -9, -7, -4, -1, 1, 5, 6, -6, -7, -5, -2, 0, 0, 0, 0, 0, 0, -1, -3, --10, -16, -18, -14, -13, -14, -13, -13, -13, -13, -13, -14, -14, -14, -14, -14, -14, -13, -12, -11, -10, -9, -8, -6, -5, --4, -11, -11, -12, -13, -14, -15, -16, -17, -17, -17, -17, -16, -15, -13, -9, -8, -8, -7, -7, -7, -7, -7, -4, -7, --8, -11, -8, -7, -8, -8, -8, -10, -9, -8, -7, -7, -8, -12, -3, -3, -2, -3, -2, -2, -2, -2, 0, -3, -4, --11, -9, -9, -10, -6, -6, -6, -7, -6, 0, -8, -12, -18, -10, -8, -11, -12, -15, -19, -16, -12, -8, -5, -1, 1, -2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, -2, -2, -16, -4, -4, -1, -4, -5, 11, -6, -12, -26, -11, --7, -10, -9, -13, -22, -15, -11, -6, 0, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 2, 3, --18, -6, -4, -3, -9, -3, 18, -8, -25, -43, -17, -8, -17, -22, -33, -47, -36, -24, -10, 0, 0, -1, 1, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 4, -7, -2, 22, 19, 13, -15, 25, 34, 15, 5, 1, 12, 35, -48, 49, 39, 27, 15, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 11, 18, 30, -34, 23, 8, -19, -7, 3, 13, 33, 26, -5, -33, -52, -55, -46, -32, -14, 1, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, 0, 1, -1, 2, -1, 15, 8, -9, -34, -36, -14, 19, 27, 21, -4, -35, -33, -5, 30, 50, 52, 41, -27, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, -45, -41, -18, 47, 20, -3, --23, -42, -19, 42, 44, 33, 0, -8, -16, -20, -19, -16, -13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -3, 2, -30, 55, 76, 77, 62, 49, 29, 9, -7, -12, -21, -19, -17, -9, -4, 1, 8, 11, 16, -2, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 3, 9, -12, -21, -23, -24, -23, -16, -14, -11, --11, -10, -9, -5, 2, 7, 10, 14, 14, 18, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, --3, 4, 19, 15, 14, 10, 6, 2, -2, -6, -11, -15, -15, -15, -16, -14, -12, -11, -11, -9, -10, -3, 2, 0, -1, -0, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, -5, -6, -7, -8, -9, -9, -10, -10, -10, -9, -9, -10, -10, --11, -11, -10, -9, -9, -7, -7, -6, -2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, -8, -6, --7, -7, -7, -7, -8, -8, -9, -9, -9, -10, -10, -10, -10, -9, -9, -9, -9, -8, -8, -9, -9, -3, -3, -3, -3, --3, -3, -3, -3, -3, -3, -3, -10, -9, -10, -}; -#else const uint32_t defaultHRIR_rom_AlphaL16[470 * 43] = { 0x3f02f000,0x3ec3e800,0x3f034400,0x3ef2d800,0x3eff8000,0x3f023c00,0x3f078800,0x3f0a0000,0x3f0c7000,0x3f090000,0x3f06f400,0x3f04a800,0x3f021800,0x3eff6000,0x3efa8800,0x3ef74800,0x3ef3d000,0x3ef0e000,0x3eed6800,0x3ee40000,0x3ef71800,0x3eb84800,0x3e90d800,0x3de92000,0x3ec64000, 0x3e91a000,0x3e00f000,0x3e01e000,0x3e062000,0x3e1c8000,0x3e0fe000,0x3e0f9000,0x3e170000,0x3e95c000,0x3ed54000,0x3e11d000,0x3e951800,0x3e8b6800,0x3f0b5000,0x3f0e4c00,0x3f173000,0x3f212400,0x3f319000,0x3f39e000,0x3f3c3000,0x3f330800,0x3f2ab400,0x3f22cc00,0x3f1b1000,0x3f141800, @@ -18353,820 +9193,6 @@ const uint32_t defaultHRIR_rom_AlphaL16[470 * 43] = { 0xb9e00000,0xb9e00000,0xb9e00000,0xb9e00000,0xba000000,0xba000000,0xba100000,0xba100000,0xba100000,0xba200000,0xba200000,0xba200000,0xba200000,0xba100000,0xba100000,0xba100000,0xba100000,0xba000000,0xba000000,0xba100000,0xba100000,0xb9400000,0xb9400000,0xb9400000,0xb9400000, 0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xba200000,0xba100000,0xba200000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_AlphaR16[470 * 43] = { -8380, 7775, 8425, 6286, 4758, 2311, 6810, 4794, 2430, 2311, 2297, 2492, 2140, 2076, 2069, 4661, 6333, 1872, 4657, 5906, 7911, 7297, 7596, 7708, 7802, -7913, 8017, 8172, 8326, 8490, 8637, 8768, 8988, 8832, 8673, 8337, 8173, 9111, 8850, 4425, 7313, 5597, 5447, 5995, 5510, 6111, 5715, 4966, 5588, 5509, -5428, 4591, 5151, 5582, 5696, 3777, 7258, 7551, 7805, 8228, 8433, 8746, 9065, 9478, 9924, 10419, 10926, 11457, 12043, 11896, 11367, 10309, 9683, 9651, 8316, -5825, 5772, 4085, 4094, 3750, 3493, 2740, 3462, 2266, 3707, 2225, 3353, 2514, 3425, 3835, 3814, 4120, 5587, 7036, 7387, 8372, 8807, 9497, 10140, 10986, -11826, 12772, 13603, 14483, 15425, 15007, 14062, 11994, 10550, 10423, 7866, 4642, 4630, 3338, 2770, 2490, 1648, 1272, 810, 1024, 406, 471, 843, 781, 1501, -971, 2337, 1988, 4043, 5790, 6413, 7663, 8196, 9092, 10018, 11202, 12553, 14056, 15581, 17380, 19372, 19163, 17462, 14006, 11437, 12159, 8420, 6403, 5056, 3288, -2473, 2537, 1796, 1561, 1207, 1251, 939, 727, 502, 1117, 1807, 1757, 3216, 3574, 5866, 8900, 10320, 12863, 14405, 16305, 18128, 19522, 20714, 21188, 22907, -22634, 20678, 19250, 17649, 16488, 13922, 14454, 9712, 6805, 6717, 6100, 4089, 3588, 2194, 1640, 868, 1064, 1036, 977, 1452, 1686, 2246, 2908, 4287, 4261, -6522, 9264, 10093, 12011, 13150, 14854, 16788, 18200, 19367, 19985, 21810, 22490, 21338, 21745, 20542, 18932, 15947, 18708, 12854, 6626, 7008, 4682, 5257, 2254, 2652, -1342, 2067, 1920, 1315, 1661, 2193, 2425, 3565, 3674, 4188, 4293, 5538, 7722, 8497, 10613, 11760, 13772, 16174, 18205, 19920, 21140, 20546, 19904, 19724, 20141, -20908, 21934, 19994, 19696, 14444, 8789, 8689, 4137, 5110, 3027, 2238, 1460, 2207, 3641, 2122, 1341, 1542, 2612, 2735, 3632, 5077, 3792, 5910, 7119, 7778, -9645, 12190, 14174, 15551, 17646, 19118, 20075, 22006, 22960, 23319, 21725, 20285, 19691, 19962, 20160, 16074, 9348, 7796, 6773, 3909, 4721, 4945, 2678, 2866, 2189, -2083, 2309, 2694, 3279, 3377, 4429, 5159, 4536, 8360, 9294, 8672, 8129, 9740, 11811, 14646, 16584, 18589, 20469, 20825, 21262, 22504, 21609, 21360, 21112, 21236, -17518, 14873, 8774, 8438, 5620, 5224, 5111, 3647, 4076, 3665, 4669, 2260, 2307, 3018, 3906, 4915, 6419, 6454, 6231, 8827, 10823, 10125, 9225, 9970, 11052, -12459, 13803, 15077, 16336, 17298, 18307, 19096, 19238, 18928, 18024, 17653, 15369, 12744, 9170, 9710, 6776, 6187, 5120, 4138, 3130, 4890, 2802, 6150, 2799, 4979, -3199, 5211, 5068, 5961, 5945, 8669, 10349, 9441, 9951, 10435, 10920, 11132, 12577, 13713, 14819, 15692, 16493, 17374, 17207, 17050, 17058, 15554, 13131, 13225, 4934, -10890, 7994, 7947, 9189, 8409, 9975, 9497, 7806, 9191, 9160, 8888, 7265, 8289, 8839, 8637, 4311, 11002, 11165, 11256, 11564, 11702, 12022, 12221, 12957, 13451, -13964, 14352, 14723, 15218, 14647, 14164, 13829, 13359, 12277, 13690, 9597, 6835, 2300, 10950, 6913, 2487, 2243, 2182, 2733, 2023, 1902, 1927, 6738, 9963, 1264, -6597, 8942, 13045, 11668, 12097, 12133, 12204, 12251, 12250, 12408, 12542, 12690, 12880, 13046, 13320, 13098, 12995, 12817, 12799, 13891, 5006, 4954, 4322, 6112, 7089, -8487, 5088, 6603, 8121, 8137, 8064, 7948, 8137, 8219, 8184, 6557, 5254, 8533, 6784, 5903, 4110, 4659, 4503, 4438, 4416, 4415, 4477, 4460, 4448, 4429, -4403, 4420, 4379, 4612, 4707, 4801, 4797, 5724, 5829, 8548, 5544, 6219, 6049, 5218, 5182, 4314, 4626, 5329, 4786, 4733, 4718, 5585, 5426, 5312, 5505, -7345, 5086, 5013, 5021, 4802, 4795, 4842, 5068, 5075, 5041, 4931, 4688, 4519, 4293, 4793, 5191, 5555, 5735, 6822, 7470, 7732, 6433, 6196, 5663, 5121, -4567, 4463, 3833, 4899, 3928, 4717, 3982, 4819, 4646, 4882, 5394, 5807, 5512, 4909, 5001, 4498, 4405, 4400, 4763, 4749, 4727, 4598, 4340, 4222, 3860, -4975, 5662, 6531, 7057, 7788, 9040, 8877, 6775, 5522, 4994, 4134, 3313, 2499, 2282, 2388, 2187, 2165, 2149, 2724, 3129, 3850, 4204, 5371, 5521, 5256, -5273, 4812, 4885, 5128, 5854, 6014, 5926, 5498, 4617, 3617, 2338, 3698, 5123, 6945, 8086, 10556, 10664, 10170, 8959, 7342, 6368, 5087, 3965, 2884, 2310, -2588, 2515, 2501, 2356, 2710, 3216, 4282, 4768, 5758, 5362, 4745, 4529, 2890, 1840, 880, 624, 259, 582, 1986, 2233, 4302, 7612, 9178, 10211, 10431, -10804, 9785, 11807, 12056, 10031, 8500, 7425, 5956, 5656, 4475, 3839, 3937, 2586, 2144, 1972, 2639, 3249, 4211, 4772, 6487, 6931, 6296, 6253, 4959, 4863, -4452, 4002, 4391, 5168, 6417, 6491, 7419, 9650, 9588, 10369, 10893, 10570, 7938, 11177, 13392, 9883, 9308, 6951, 6921, 5259, 4776, 4657, 7106, 5088, 4737, -4099, 4030, 4356, 5742, 6686, 7453, 7906, 7448, 7301, 6058, 5763, 4817, 3685, 3279, 3945, 5615, 9352, 12020, 12933, 13470, 11505, 8119, 8668, 5278, 9651, -12599, 8975, 9798, 7062, 6796, 6125, 5224, 5735, 9887, 4701, 3685, 5252, 5482, 6474, 7397, 7408, 8565, 8040, 7865, 7620, 6647, 5231, 4431, 4462, 3987, -4375, 5358, 6082, 7287, 8045, 10294, 12063, 12821, 8345, 3914, 5117, 10889, 9189, 7962, 8609, 6544, 5002, 6515, 6265, 7879, 6188, 5718, 5751, 6002, 6989, -7301, 7901, 9407, 7450, 6866, 7806, 8743, 7876, 6647, 4934, 4097, 3371, 3072, 3889, 5344, 6184, 8588, 8845, 7831, 5981, 4289, 5661, 11062, 8756, 8961, -7727, 6523, 6904, 6529, 6755, 5489, 7214, 6967, 6564, 6604, 6764, 6524, 7686, 9130, 7127, 6323, 7741, 8652, 8712, 8334, 7631, 7172, 7103, 7578, 7594, -7518, 7378, 8283, 8414, 7787, 6431, 5719, 7559, 10354, 8274, 10068, 9090, 8876, 8141, 8975, 7017, 8804, 5938, 8775, 7084, 9037, 7946, 8703, 8726, 9705, -7813, 7076, 9113, 9678, 9855, 9964, 10416, 9666, 9122, 8542, 8042, 7641, 7186, 6904, 6868, 6875, 7141, 5698, 5447, 13943, 6628, 9190, 8635, 6751, 6778, -5201, 5918, 7471, 6066, 5773, 5866, 8104, 7554, 7450, 7845, 12910, 6399, 6554, 7080, 7292, 7692, 7945, 8332, 7604, 7192, 6776, 6516, 6227, 5948, 5991, -6008, 5845, 5926, 4737, 2959, 8234, 11080, 15120, 5989, 10333, 14226, 14505, 14425, 13823, 14467, 14664, 14529, 10282, 6740, 15666, 10870, 8456, 3192, 4947, 4726, -4850, 5006, 5148, 5423, 5226, 5128, 4997, 4830, 4673, 4480, 4475, 4437, 4429, 4351, 4435, 2370, 1920, 1983, 1873, 1812, 1744, 1987, 1776, 1590, 1583, -1639, 1811, 1749, 1715, 1639, 1828, 2053, 1706, 1872, 2020, 2232, 2241, 2289, 2359, 2384, 2393, 2372, 2333, 2316, 2328, 2299, 2220, 2116, 1919, 1843, -1824, 1870, 1589, 1657, 1888, 2052, 2163, 1894, 1909, 2024, 2158, 2251, 2466, 2456, 2445, 2228, 2279, 2307, 2434, 2476, 2354, 2451, 2561, 2677, 2852, -2925, 2908, 2799, 2672, 2653, 2712, 2766, 2602, 2300, 1694, 1392, 1367, 1455, 686, 1079, 1911, 2094, 2402, 1967, 1823, 1942, 1858, 2174, 2771, 2706, -2529, 2060, 2368, 2468, 2608, 2696, 2834, 2652, 2823, 3071, 3366, 3579, 3584, 3430, 3173, 3080, 3102, 3087, 2659, 2080, 808, 324, 162, 357, -338, -395, 1522, 1615, 2143, 1595, 1252, 1521, 1444, 1772, 2804, 2484, 2552, 2203, 2648, 2744, 3025, 3219, 3445, 3039, 3119, 3426, 3822, 4052, 3993, 3619, -3186, 3146, 3428, 3774, 3545, 2871, 904, -189, -762, -556, -1501, 2080, 3866, 3972, 4417, 4147, 3551, 3537, 2770, 2494, 2723, 2715, 2480, 1622, 2415, -2797, 3186, 3377, 3449, 3587, 3351, 3618, 4612, 4669, 4785, 4640, 4229, 3316, 1724, 256, -2261, -4923, -6291, -6002, -4691, -2562, -4961, -2262, -35, -208, -91, 1409, 1604, 2145, 2714, 3097, 3602, 2822, 2676, 1913, 2614, 2845, 3037, 3384, 3693, 3668, 3348, 3642, 4297, 3941, 3155, 1887, -327, -2554, -4688, --6313, -7941, -9418, -9610, -9562, -9573, -5963, -8323, -5185, -2616, -2266, -340, -266, 1663, 1704, 2217, 2397, 4849, 2414, 1684, 1689, 2921, 3338, 3589, 4105, -4869, 4458, 4026, 3906, 3051, 1520, 282, -608, -2384, -4831, -7710, -11478, -14057, -15267, -15290, -13612, -11886, -9614, -9210, -7568, -5360, -3351, -967, -213, 965, -1087, 2684, 2414, 926, 3027, 3562, 1982, 2087, 2056, 1765, 1726, 3226, 3408, 3525, 3713, 2986, 2498, 1229, -894, -2417, -4447, -6649, -8699, -10479, -11533, --12842, -13936, -15135, -11625, -8613, -6223, -5916, -3319, -2407, -1166, -677, 159, 442, 662, 444, 2020, 2151, 1263, 1245, 962, 804, 592, 859, 596, 1649, -2132, 1844, 1505, 1336, 1373, 632, -228, -1374, -2908, -4958, -7002, -9902, -11404, -12070, -11085, -6844, -5856, -5913, -4045, -2649, -1721, -734, 196, -115, -269, --241, 207, 605, 787, 58, -494, -537, -919, -1363, -949, -524, -520, -106, 72, 299, 773, 105, -688, -1834, -3406, -4941, -6420, -8175, -9128, -9285, --8544, -5762, -5989, -5811, -4450, -3878, -2788, -2201, -1206, -1333, -914, -1165, -802, -937, -864, -1246, -1567, -2167, -2574, -3134, -3230, -3223, -3884, -4142, -4156, --4166, -4236, -4522, -4716, -4799, -5334, -5836, -6393, -6439, -6721, -7197, -6663, -3903, -3877, -5636, -3387, -3749, -3429, -2627, -2209, -1864, -2226, -2521, -2273, -2019, --2025, -2846, -3018, -3214, -3351, -4954, -3693, -3762, -4215, -4513, -4864, -5181, -5516, -5357, -5305, -5255, -5257, -5206, -5228, -4955, -4688, -4383, -4216, -3222, -2635, --4735, -5492, -5980, -3646, -4908, -5399, -5511, -5412, -5261, -5378, -5502, -5430, -4886, -3761, -5903, -5299, -4618, -2535, -3145, -3217, -3319, -3474, -3610, -3824, -3748, --3734, -3708, -3649, -3596, -3569, -3452, -3374, -3266, -3221, -3112, -526, -448, -833, 324, 984, 1971, -16, 933, 1994, 2051, 2061, 1969, 2125, 2120, 2019, -902, 49, 2146, 897, 303, -816, -492, -606, -593, -587, -583, -573, -590, -644, -735, -862, -956, -1086, -937, -811, -545, -557, -391, -576, 1294, -86, 638, 608, 330, 609, 342, 582, 937, 621, 514, 345, 717, 401, 305, 211, 1201, -519, -725, -729, -726, -689, -661, -649, -673, -879, --1224, -1665, -1919, -2023, -1653, -1215, -510, -454, -399, -663, 469, 571, 1039, 886, 1029, 1464, 1785, 1414, 2030, 1200, 1702, 661, 1071, 583, 417, -551, 431, -225, -982, -949, -974, -965, -907, -901, -918, -1263, -1862, -2630, -3209, -3514, -2769, -2062, -601, -477, 413, 6, 1352, 1496, 1427, 1103, -1086, 1842, 1776, 1960, 2406, 2467, 2011, 1034, 1427, 1077, 1675, 849, 1086, -11, -1035, -959, -876, -804, -738, -582, -609, -1229, -2353, -3896, -4941, --5087, -3902, -2275, 177, 511, -4961, -5698, -4533, -3233, -1504, -88, 531, 1195, 1726, 2035, 2196, 2297, 2345, 1905, 1776, 1203, 1400, 449, 628, -466, --1428, -1469, -2681, -2427, -2624, -2913, -3581, -3843, -3713, -3701, -2708, -1751, -1952, -2917, -4202, -4792, -3848, -4646, -4443, -3159, -2200, -1529, -721, -248, 526, -1517, 2529, 2781, 2674, 1714, 1867, 1497, 1333, 685, 758, -453, -783, -161, -104, 264, 386, 406, 1202, 1536, 1371, 1302, 830, 143, -913, -1193, --546, -3034, -828, -3129, -3322, -2000, -1353, -404, -66, 150, 1488, 1755, 1136, 2933, 2740, 758, 981, -110, -352, -1221, -976, -664, -544, 906, 2929, -4322, 5177, 5230, 6177, 7020, 7676, 8357, 8170, 7518, 5227, 3203, 1545, -51, 2511, 281, -682, -513, -692, -136, 119, 17, 1751, 2260, 558, 2839, -2480, 356, 443, 300, 98, -139, 94, -467, 30, 1178, 2443, 3452, 5004, 6844, 7953, 8916, 9473, 9522, 8660, 7672, 5191, 3950, 3568, 3299, 4356, -3132, 2168, 1096, 952, 895, 1390, 1724, 1958, 2348, 2531, 2216, 2005, 1838, 1603, 1345, 1179, 980, 1100, 485, 25, 707, 1944, 3205, 4038, 4349, -4871, 5001, 4726, 4463, 3969, 3510, 3247, 3400, 3918, 4794, 3491, 3175, 2998, 2713, 2269, 2197, 1737, 1091, 1583, 1911, 2337, 2124, 2209, 2256, 2539, -2672, 2308, 2507, 2641, 2090, 1662, 1634, 1331, 1042, 906, 685, 806, 1008, 1357, 1666, 1929, 2252, 2699, 3102, 3441, 3742, 3002, 3022, 2874, 2588, -2377, 1927, 1786, 1437, 1775, 1826, 2172, 2197, 2337, 2477, 2803, 3164, 3669, 3747, 3892, 3975, 3801, 3834, 3653, 3321, 2994, 2696, 2731, 2669, 2545, -2628, 2761, 2940, 3054, 3242, 3501, 3258, 3321, 3408, 3787, 3120, 3276, 3199, 2881, 2757, 2635, 2948, 3162, 3132, 3040, 3183, 3455, 3592, 3761, 3828, -4352, 4390, 4208, 4303, 4335, 4380, 4398, 4382, 4282, 4207, 4146, 4116, 4045, 3967, 3834, 3684, 3543, 3482, 3239, 3021, 4080, 4305, 4109, 3597, 4069, -4041, 4135, 4095, 4025, 4112, 4191, 4169, 4310, 3934, 4283, 4542, 4346, 3393, 3542, 3586, 3586, 3627, 3669, 3745, 3686, 3646, 3600, 3530, 3470, 3423, -3379, 3347, 3293, 3276, 3611, 575, 481, 742, -253, -776, -1485, 162, -659, -1438, -1365, -1332, -1328, -1407, -1469, -1459, -708, -32, -1758, -811, -302, -725, 438, 538, 551, 605, 629, 658, 614, 605, 591, 645, 703, 890, 676, 591, 445, 551, 414, 335, -951, 371, 2, -53, 270, 133, -774, 667, 130, 485, 456, 441, -236, -206, -120, -108, -1010, 347, 484, 505, 577, 717, 786, 804, 666, 618, 613, 795, 939, 1288, 685, -397, 62, 289, 401, -82, -287, 2, 64, 50, 70, -51, 511, 877, 110, 699, 234, 617, -335, -367, -359, -459, -479, -102, 382, 442, -599, 912, 1032, 1132, 850, 759, 760, 1162, 1641, 2678, 1395, 879, -55, 276, -248, -655, -460, 294, 717, 708, 734, 748, 1623, 1700, 1387, -1553, 1126, 752, 174, -216, -583, -348, -613, -214, 303, 370, 475, 890, 1095, 1015, 387, 87, 95, 864, 1789, 3031, 1006, -221, -1470, -866, -1814, 977, -174, -266, -624, -570, -210, -171, 628, 1089, 1087, 1739, 1825, 1384, 765, 256, -122, -299, -885, -523, 55, 301, 1397, 1929, 2522, -3246, 4226, 4816, 4854, 5287, 5082, 5063, 5256, 5138, 4643, 2562, 798, 23, -347, -38, 354, 306, 520, 227, 548, 902, 1144, 2119, 1903, 1067, -874, 356, -67, -223, -595, -74, -533, -928, -656, 995, 2546, 4224, 4152, 4184, 4084, 3433, 2808, 2184, 1678, 688, -178, 228, -300, 319, 276, -493, 200, 357, 236, -233, 1982, 2218, -772, 1935, 1244, -742, -581, -621, -942, -639, -817, -844, -1073, -1085, -1179, -818, -670, -254, -1318, -1980, --2416, -2686, -2927, -3160, -2949, -2171, 268, -592, -1865, -1257, -495, -179, 81, 211, 705, 779, 1244, 1198, -886, 997, 1187, 607, 154, -538, -769, --1153, -1301, -1234, -2038, -2576, -3066, -3853, -4675, -5346, -5663, -5982, -6442, -6615, -6648, -6737, -5080, -3589, -1161, -2062, -2637, -3023, -2070, -1476, -641, -271, --16, 153, 877, 861, 267, 59, -288, -277, -507, -615, -844, -927, -1176, -1538, -1807, -2451, -3071, -4048, -4916, -5402, -5788, -5815, -5496, -5209, -5011, --5001, -4085, -3170, -1854, -2333, -1781, -1902, -1700, -1714, -1278, -1328, -800, 192, 265, 233, -173, 410, 270, -359, -955, -1477, -1669, -2083, -2318, -2430, --2637, -2785, -2782, -2609, -2595, -2477, -2490, -2564, -2736, -3016, -3152, -3236, -3243, -3039, -2635, -2107, -2109, -1629, -1447, -1179, -797, -448, -240, 5, -92, --205, -132, -725, -512, -1018, -906, -1518, -1878, -2141, -2262, -2950, -3166, -2978, -2949, -2762, -2629, -2490, -2790, -2951, -3045, -3073, -3123, -3196, -3116, -3086, --3153, -2648, -2815, -2910, -2389, -2511, -2347, -2223, -2135, -1977, -1999, -2171, -2046, -2169, -2042, -2077, -2024, -2316, -2475, -2474, -2063, -3282, -3191, -3268, -3351, --3391, -3428, -3412, -3387, -3338, -3323, -3307, -3275, -3240, -3136, -3029, -2926, -2881, -2642, -2667, -2811, -2651, -1956, -2688, -2515, -1959, -1969, -1906, -1904, -1838, --1842, -1794, -2587, -2788, -1725, -2713, -2925, -2953, -2805, -2902, -2899, -2940, -2985, -3057, -3014, -2984, -2944, -2901, -2860, -2826, -2788, -2758, -2713, -2705, -2962, -405, 533, 244, 1109, 1512, 2030, 688, 1392, 1931, 2099, 2092, 1908, 2065, 2119, 2176, 1433, 798, 2128, 1412, 978, 23, 301, 225, 204, 182, -181, 181, 237, 275, 321, 345, 366, 389, 394, 452, 661, 515, 586, 546, 1615, 469, 780, 896, 676, 592, 641, 852, 937, 822, 788, -954, 948, 735, 668, 575, 1319, 100, 43, 46, -44, -107, -137, -104, 56, 209, 360, 464, 544, 564, 624, 732, 1136, 770, 1118, 1202, -1227, 825, 704, 718, 719, 340, 1165, 992, 915, 725, 1135, 1190, 846, 479, 463, 434, 436, -61, -311, -318, -505, -625, -628, -550, -245, -46, 333, 457, 453, 348, 636, 967, 2044, 1396, 978, 971, 769, 245, -20, 312, 228, -229, 976, 1327, 534, 1041, 856, 840, 44, -289, -149, -159, 105, -496, -665, -661, -869, -1018, -1115, -963, -382, 181, 688, 887, 896, 558, 965, 1441, 2747, 1649, 2798, 2652, 3156, 2988, 2088, -1579, 1299, 1169, 944, 948, 922, 1011, 1017, 1461, 623, 186, 301, -71, 128, -611, -1325, -1540, -2278, -2318, -2225, -2100, -1913, -1646, -1229, -1292, --970, -869, 846, 1537, 1843, 2528, -1184, 166, 140, 361, 632, 721, 1089, 1788, 2092, 1998, 1172, 1533, 1149, 1212, 282, -68, -98, -486, -601, --1757, -2510, -2833, -3333, -4942, -5746, -5832, -4564, -3451, -2315, -1399, -220, 144, 1269, 1331, 926, -737, -178, 237, 286, 607, 733, 625, 819, 882, -1331, 1669, 113, 1384, 1612, 2478, 1186, 644, 839, 288, -95, -671, -953, -1352, -1754, -2098, -1938, -1566, -688, -250, -96, -658, -845, -1401, 999, -1510, 193, 80, 299, 1072, 518, 727, 524, 527, 798, 1571, 1050, 648, -243, 339, 426, 1164, 365, 50, 82, -35, -641, -821, -832, -835, --473, -235, -53, 1, -23, 214, 1068, 996, 1858, 2577, 3512, 3041, 1389, 332, 820, 1461, 979, 1021, 831, 747, 935, 1240, 755, 569, -8, -546, 821, 1170, 762, 354, 52, 99, -19, 488, 338, 38, -189, -146, 180, 404, 734, 902, 1189, 772, 1079, 1925, 2843, 2925, 2293, 981, -940, 255, 173, 305, 304, 866, 1016, 654, 753, 714, 868, 354, 252, 542, 626, 931, 1192, 1128, 876, 974, 1216, 984, 542, -138, -469, --771, -733, -749, -682, -180, 490, 1256, 1726, 2075, 2519, 1744, 1757, 1595, 1434, 1120, 676, 670, 620, 691, 677, 941, 841, 1309, 816, 1231, -698, 942, 808, 1015, 985, 1740, 1801, 1251, 1057, 726, 439, 54, 385, 565, 671, 844, 946, 1043, 1378, 1723, 2168, 1929, 1568, 1745, 893, -1545, 1323, 1337, 1485, 1412, 1524, 1508, 1242, 1414, 1316, 1282, 1009, 1252, 1270, 1166, 353, 1658, 1501, 1448, 1408, 1307, 1238, 1104, 1187, 1200, -1246, 1267, 1307, 1304, 1373, 1388, 1431, 1494, 1441, 1626, 1375, 1133, 444, 1561, 1189, 566, 491, 440, 456, 332, 294, 261, 1088, 1430, 77, -1052, 1342, 1719, 1449, 1506, 1468, 1466, 1467, 1463, 1460, 1445, 1429, 1405, 1382, 1353, 1371, 1391, 1401, 1455, 1561, -944, -1085, -930, -1297, -1417, --1553, -1005, -1289, -1492, -1468, -1425, -1368, -1417, -1414, -1330, -1183, -943, -1570, -1343, -1155, -615, -801, -771, -719, -796, -846, -938, -924, -929, -908, --953, -995, -1130, -1037, -1061, -1175, -1119, -1676, -1510, -1606, -1104, -1115, -1051, -853, -800, -561, -604, -647, -588, -502, -354, -638, -677, -903, -884, --1352, -668, -679, -705, -571, -776, -935, -1185, -1192, -1206, -1137, -1233, -1352, -1699, -1465, -1517, -1829, -1767, -2332, -1819, -1426, -1136, -904, -752, -521, --422, -250, -5, -150, 23, -34, 513, 21, -161, -560, -724, -874, -509, -448, -500, -229, -597, -898, -1430, -1429, -1474, -1422, -1643, -1795, -2578, --2136, -2292, -2873, -2553, -3721, -2801, -1889, -1352, -972, -674, -426, -308, 367, 757, 543, 616, 732, 1175, 370, 71, -605, -592, -963, -397, -259, --258, 146, -455, -1015, -1899, -1988, -2040, -1907, -2062, -2410, -3552, -2868, -3067, -4175, -3916, 1620, 2374, 2013, 1567, 1236, 849, 886, 1263, 1210, 1054, -1172, 439, 243, 973, 305, 128, -585, -331, -840, -514, -106, -430, -90, -517, -602, -840, -676, -875, -982, -1734, -2088, -1916, -2623, -2058, -1165, -766, 2694, 1709, 1370, 1385, 1481, 1718, 1592, 1066, 1640, 1697, 464, 823, 968, 1770, 589, 294, -215, -106, -528, 26, 506, 248, 342, 815, -992, 459, 271, 74, 299, 324, 1156, 3216, 3472, 3268, 1061, 2624, 656, 993, 980, 880, 853, 104, 584, 2652, 1162, 659, 43, -579, -48, -2850, 372, 6, -7, 115, 180, 303, 691, 425, -172, 123, 210, 78, 138, 118, 231, 267, 682, 2108, -180, -1197, -2151, -281, 295, 252, -536, 262, 370, 429, 678, 1683, 360, 16, 623, 192, 735, 2579, 1090, 746, 827, 774, 882, 1073, 1158, 982, 690, 940, 830, 350, -654, --1909, -3251, -3172, -2853, -1848, -2172, -2016, -2776, -329, -903, -408, -33, 156, 219, 443, 343, 383, 423, 473, 621, 783, 753, 593, 510, 692, -800, 720, 676, 595, 518, 514, 433, 122, -487, -1245, -2158, -2748, -3132, -2491, -1951, -1577, -1537, -1872, -3284, -1650, -1607, -564, -209, 249, 621, -580, 632, 763, 858, 837, 456, 656, 625, 461, 558, 429, 157, 213, 289, 127, -325, -265, 71, 587, 492, 5, -275, -451, -505, -725, --903, -1153, -1045, -1344, -2152, -2180, -1182, -1420, -1042, -736, -383, -303, -134, -55, 163, 171, 524, 257, 655, 494, 621, 342, 305, 78, 78, --622, -646, -203, -71, -6, 94, 279, 45, -147, -298, -399, -477, -614, -734, -858, -919, -995, -146, -80, 501, 167, 388, 431, 407, 533, -396, 364, 482, 352, 381, 410, 470, 240, 181, 116, 509, -428, -371, -384, -391, -345, -321, -259, -371, -419, -496, -559, -622, -655, -560, --466, -383, -288, -204, -253, -183, -56, 280, -224, -52, 293, 334, 368, 345, 424, 437, 451, 21, -154, 454, -56, -221, -427, -268, -315, --305, -312, -327, -337, -346, -347, -343, -337, -331, -349, -308, -286, -258, -245, -204, 208, 137, 86, 303, 395, 494, 356, 516, 615, 582, -576, 553, 582, 611, 655, 570, 422, 570, 524, 420, 115, 207, 184, 156, 150, 139, 132, 132, 130, 84, 164, 171, 115, 135, 137, -151, 146, 137, 61, 82, 129, 373, 464, 474, 503, 318, 323, 443, 405, 447, 539, 599, 519, 357, 347, 546, 220, 216, 227, 129, -127, 116, 130, 143, 122, -22, 173, 151, -14, 21, 61, 153, 188, -8, -265, -377, -110, 242, 395, 573, 671, 522, 426, 576, 518, -709, 760, 860, 718, 360, 464, 482, 304, 246, 213, 57, -30, -73, -74, -56, -57, -303, 105, 86, -330, -173, -149, -14, -13, -30, --702, -845, -298, 381, 495, 752, 639, 487, 547, 499, 507, 800, 1256, 967, 749, 311, 380, 462, 290, 225, 278, 40, -89, -136, 19, -152, 157, -265, 306, 15, -629, -334, -35, 91, 124, -381, -349, -367, -635, -392, -440, -209, 328, 980, 1104, 947, 763, 799, 1159, 745, -690, 589, 525, 800, 971, 358, 126, -712, -148, -237, -726, -1244, -1653, -2122, -1526, -1045, -64, -2045, -2529, -1435, -956, 3109, 2473, 2777, 2567, -2272, 1751, 1484, 1770, 1103, 1056, 431, 470, 678, 1277, 625, 558, 337, 306, 497, -180, -645, -400, -669, -911, -1371, -1760, -2064, -2101, -2089, --1251, -1235, -817, -1881, -507, 2968, 3064, 451, -254, -44, -370, -332, 565, 1143, 2537, 748, 75, 413, 92, 850, 2469, 1228, 760, 649, 232, --31, -616, -1298, -1843, -2353, -2336, -2220, -1995, -1413, -802, -402, 966, 1302, 1045, -71, -500, -233, 314, 265, 120, 195, 419, 494, 749, 573, -880, 491, 405, 1016, 168, 369, 1204, 747, 813, 336, 264, 389, 161, 446, 687, 487, 985, 1292, 1683, 2284, 2751, 2909, 2156, 1139, 466, --434, -273, 1095, 560, 556, 486, 301, 288, 388, 405, 708, 1200, 664, 351, 200, 413, 619, 671, 508, 273, -89, -176, -112, -275, 68, -281, -74, 543, 865, 1097, 1543, 1838, 2075, 1646, 1313, 1271, -232, -542, 440, 449, 972, 818, 831, 715, 553, 419, 317, 484, 272, 305, -414, 399, 399, 620, 552, 501, 498, 373, 309, 453, 609, 522, 242, -18, 131, 645, 938, 1039, 864, 827, 778, 1092, 362, 188, 116, -781, 612, 821, 741, 883, 983, 989, 1001, 1013, 800, 645, 355, 472, 387, 449, 356, 426, 420, 400, 169, 514, 453, 44, -145, -35, -49, 77, 96, 158, 214, 522, 764, 1104, 778, 537, 157, 363, 554, 406, 193, 226, 132, 59, -14, -34, 20, 167, 227, 314, 336, -415, 330, 382, 350, 352, 65, 583, 548, 542, 523, 467, 395, 319, 524, 697, 850, 994, 1103, 1263, 1105, 1017, 899, 760, 826, 783, -835, 765, 598, 767, 714, 585, 623, 613, 628, 626, 639, 657, 787, 853, 528, 776, 850, 928, 829, 850, 840, 828, 832, 806, 874, -909, 952, 986, 1021, 1093, 1016, 974, 931, 877, 1092, -622, -630, -589, -730, -730, -638, -569, -627, -608, -672, -670, -629, -624, -631, -656, --625, -547, -686, -704, -669, -476, -522, -522, -546, -541, -545, -507, -607, -643, -666, -638, -687, -880, -783, -771, -806, -679, -669, -638, -691, --545, -310, -321, -275, -240, -365, -422, -399, -313, -250, -334, -246, -288, -430, -509, -659, -450, -452, -498, -574, -570, -589, -526, -809, -899, --923, -840, -983, -1452, -1263, -1212, -1199, -840, -896, -804, -749, -628, -64, -32, 30, 121, -143, -118, 15, 136, 168, -55, 146, 105, -169, --367, -477, -294, -285, -321, -473, -436, -516, -375, -927, -1109, -1208, -1090, -1370, -2212, -1819, -1746, -1820, -1126, -557, -426, -398, -78, 656, 636, -770, 707, 313, 299, 557, 617, 853, 806, 904, 652, 102, -47, -170, 44, -13, -177, -464, -441, -477, -371, -1228, -1608, -1632, -1446, -1863, --3010, -2529, -2425, -2329, -1093, -2020, -1153, -2009, -1911, -925, -268, -83, -386, 618, 968, 418, 936, 882, 233, 547, 551, -11, -290, -539, -493, --276, -112, 165, -207, -645, -763, -1014, -995, -1063, -1205, -1614, -2596, -1971, -1790, -1171, -1852, 1465, 2372, 2281, 1838, 1099, 545, 585, 1673, 602, -220, 135, 1, 449, 906, 828, 568, -229, -386, -898, -641, -215, -458, -742, -386, -65, 479, 170, 32, -343, -252, -1341, -3877, -2843, -2053, --348, 387, 458, 40, -796, -394, 304, 1884, 1805, 1155, 197, -402, 129, -86, 95, -743, 855, 985, -768, -364, -554, -598, -808, -632, -217, --434, -700, -705, -905, -534, 78, 882, 1636, 2168, 3183, 3596, 4747, 1882, 234, 383, 376, 457, 262, 446, 417, 310, 989, 916, 643, 535, -718, 204, 1140, 1123, -14, -94, -367, -304, -596, -686, -520, -900, -743, 33, 557, 1250, 1571, 2820, 2657, 1557, 144, -629, -225, -261, 288, -128, 153, 193, 289, 788, 809, 414, 346, 172, 292, 102, 93, 370, 116, 85, 172, 181, -15, -159, -256, -163, 462, 457, 593, 1024, -620, 323, -392, 109, -5, -322, -294, -176, 329, 328, 30, 50, 14, 18, -118, 44, 140, 217, 190, 154, 94, 280, 427, 457, 243, -120, -11, 4, 46, -177, -144, -90, -146, 348, 399, 83, -293, -373, -267, 325, 213, -608, -826, -798, -214, -120, -33, 145, 161, 172, -241, 237, 185, 196, 323, 404, 572, 320, 217, -27, 125, 132, 235, 236, 371, 134, 0, 156, 128, -87, -304, -449, -169, 62, 271, --125, -396, -637, -411, -329, -286, -173, -232, -267, -120, -247, -231, -196, -171, -236, -192, -252, -207, -222, -153, -142, 31, 66, 105, 192, -507, 317, 373, 393, 447, 507, 598, 643, 485, 295, 182, 52, -41, -218, -224, -236, -231, -221, -441, -473, -346, -228, 11, -357, -201, --37, -51, -29, -28, -1, 13, 26, -205, -341, 179, -98, -204, -343, -267, -269, -259, -242, -238, -197, -274, -317, -383, -413, -449, -496, --464, -458, -449, -454, -657, 174, 170, 124, 110, 96, 108, 145, 180, 190, 133, 124, 109, 150, 155, 114, 217, 232, 164, 202, 183, -97, 143, 143, 108, 131, 140, 133, 175, 187, 238, 128, 116, 187, 184, 208, 227, 211, 273, 162, -78, -51, 104, 103, 172, 296, -177, 152, 144, 231, 244, 172, 292, 312, 315, 206, 167, 54, 131, 138, 50, 102, 121, 125, 276, 331, 420, 91, 54, 293, 267, -308, 330, 340, 218, -84, -364, -327, -27, -48, 91, 432, 119, 84, 111, 243, 318, 88, 356, 395, 394, 185, 103, -103, 65, 67, --116, -10, 55, 64, 336, 390, 605, -25, -114, 494, 424, 601, 500, 385, 462, 75, -526, -512, 87, 38, 266, 685, 233, 211, 265, -624, 702, 209, 627, 672, 519, 240, 100, -200, 28, 37, -231, -39, 18, 62, 558, 776, 1042, -49, -104, 863, 732, 764, 756, 623, --1893, -1510, -1376, -1119, -814, -413, -321, -271, 221, 642, 316, 673, 627, 334, 477, 266, -35, -149, -151, -314, -347, -319, -453, -555, -362, -49, 17, -108, 66, -689, -816, -1118, 74, 326, -568, -1443, -1538, -89, 210, -93, -781, 142, 617, 860, 348, -98, 166, -28, 298, 414, -770, 812, 505, 348, 267, 238, -239, -309, -68, -1000, -1535, -1487, -1480, -1315, -856, -2058, -2050, -2015, -1226, -1646, -2929, -2070, 3008, 2009, 1043, -1368, 1927, 2226, 1483, -250, 271, 41, 137, 135, 323, -488, 1138, 1320, 110, -129, -518, -531, -578, -513, -390, -621, -620, -364, -797, -976, --804, -1309, -1472, -2322, 1015, 2827, 2577, 3333, 200, 52, 110, 125, 53, 602, 941, 813, 992, 665, 168, 452, 461, -282, 624, 663, 12, -120, -231, -628, -991, -1309, -1648, -2084, -2375, -2560, -2362, -1546, -218, 502, 1095, 278, 1668, 1537, 509, 418, 502, 528, 498, 598, 660, 779, -621, 241, 209, 207, 14, 76, 251, 466, 836, 787, 387, 427, 370, 529, 549, 528, 540, 577, 837, 984, 1434, 1677, 2046, 1075, 331, --840, 306, 904, 1163, 728, 891, 606, 468, 384, 387, 555, 710, 694, 753, 634, 487, 422, 378, 297, 301, 260, 185, -8, -132, 52, -87, -44, -135, -823, -1022, -755, -278, 54, 392, -342, -433, -259, 388, 766, 1065, 1082, 635, 690, 574, 467, 336, 320, 273, 231, 214, -304, 301, 431, 354, 484, 411, 490, 480, 401, 224, 349, 452, 332, 382, 558, 710, 760, 599, 402, 248, 171, 94, -58, 128, 326, -559, 587, 122, 241, 117, 355, 358, 402, 515, 603, 577, 500, 378, 372, 328, 266, 180, 169, 194, 179, 76, 127, 54, 37, -26, --102, -185, -216, -258, -261, -289, -284, -278, -290, -182, -128, -49, 27, 182, 244, 106, 25, -144, 240, 92, -58, -97, -112, -115, -161, --193, -229, 17, 155, -225, -18, 80, 192, 142, 134, 123, 114, 108, 91, 94, 93, 97, 83, 74, 60, 91, 117, 138, 171, 244, --168, -218, -192, -199, -196, -198, -170, -152, -81, -142, -157, -158, -148, -138, -117, -120, -105, -79, -117, -119, -66, -137, -142, -103, -160, --175, -181, -163, -172, -184, -254, -257, -201, -180, -179, -189, -225, -402, -356, -300, -318, -316, -155, -58, 47, -71, -121, -125, -120, -85, -10, 5, 42, 63, 48, -59, 17, -92, -143, -34, -195, -227, -245, -211, -255, -320, -529, -531, -335, -220, -180, -232, -356, -600, -353, --285, -301, -372, -120, 52, 322, 34, -53, -35, -34, 77, 299, 202, 260, 354, 262, 99, 123, -34, -120, 100, -198, -265, -306, -240, --349, -416, -800, -765, -400, -280, -316, -352, -579, -747, -529, -566, -656, -537, -88, 227, 654, 168, 118, 139, 413, 362, 331, 363, 517, -531, 365, 154, 275, 91, -81, 258, -187, -284, -314, -330, -434, -629, -1274, -1272, -596, -293, -182, -197, -581, -1332, -868, -153, -3, -378, --523, -399, 88, 59, 285, 227, 303, 525, 892, 379, 289, 500, 219, -198, -437, -156, -155, 52, -375, -532, -741, -705, -947, -1558, -766, --453, -349, -571, -1054, -1990, -1564, -1840, -1332, -1425, -1008, -232, 551, 650, -280, -13, -139, 108, -20, -56, -214, 710, 757, 206, -48, -242, --216, -76, -143, -241, -32, 215, -47, 223, -164, -900, -1733, -1466, 424, 284, 250, -485, -1438, 2748, 3434, 2883, 2581, 2563, 1401, 734, -147, -295, 119, 29, 55, 73, -59, 175, 346, 773, 85, -217, -239, -100, -268, -582, -1005, -1114, -1295, -397, -351, -529, -1822, -1892, -326, -1511, --1113, 479, 1789, -245, -4, 55, 449, 755, 1057, 1121, 962, 267, -28, 149, 149, 90, 120, 223, 324, 813, 155, -167, -291, -589, -863, --888, -966, -831, -908, -685, -1015, -935, -1698, -854, 1592, 2335, 2650, 1843, 508, 372, 581, 563, 648, 725, 658, 505, 364, 470, 660, 947, -607, 528, 428, 791, 759, 502, 257, 256, 223, 70, 49, 26, -239, -271, -134, 475, 824, 1213, 636, 554, 1221, 305, -46, -345, 15, --483, -314, -73, 159, 430, 628, 717, 592, 692, 654, 617, 516, 434, 299, 290, 412, 632, 623, 537, 418, 432, 545, 721, 1053, 1279, -1237, 975, 443, -194, -347, -261, 239, 315, 312, 78, -344, 265, 113, 206, 177, 148, 190, 257, 350, 339, 327, 351, 447, 595, 737, -571, 341, 99, 282, 553, 549, 490, 580, 571, 448, 335, 298, 151, 85, -18, 209, 339, 441, 406, 415, 504, 409, 413, 457, 447, -489, 519, 573, 594, 630, 608, 610, 603, 586, 549, 547, 449, 395, 311, 201, 68, -80, -89, -115, -130, -115, -101, -105, -41, 19, -60, 98, 133, 202, 254, 297, 316, 346, 372, 402, 381, 400, 418, 387, 402, 434, 436, 443, 446, 452, 457, 474, 413, 357, 380, -312, 266, 219, 244, 239, 237, 230, 220, 203, 237, 258, 282, 290, 297, 298, 303, 314, 333, 356, 367, 86, -19, 77, 48, 46, --5, 103, 115, 119, 86, 66, 34, 47, 67, 130, 134, 145, 130, 161, 157, 117, 99, 84, 75, 83, 71, 35, 26, 34, 93, -59, 75, 172, 71, 40, 42, -19, -171, 11, -149, -81, -160, 106, 193, 205, 133, 73, 21, 27, 81, 231, 217, 255, 282, 312, -320, 233, 143, 105, 64, 91, 60, -21, -26, 2, 133, 57, 128, 350, 146, 59, 31, -164, -498, -67, -247, -113, -294, 108, 259, -317, 179, 33, -58, -49, 81, 381, 366, 408, 436, 512, 512, 372, 185, 102, 54, 93, 36, -144, -218, -178, 174, 13, 135, 564, -23, -139, -178, -563, -755, -233, -597, -582, -666, 144, 400, 519, 236, 64, -28, 162, 316, 718, 475, 571, 768, 850, 827, 564, 268, -169, 30, 81, -8, -202, -228, -85, 281, -44, 246, 936, 292, 3, -79, -811, -1062, -1310, 471, 690, -356, -238, -139, 211, -125, -29, -196, 27, 199, 625, 392, 344, 436, 276, 233, 226, -76, -248, -457, 26, -29, -599, -1004, -873, -499, 933, 924, -412, -584, -998, -1519, --1324, -572, -1559, -1451, -994, 209, 169, 110, -276, -49, -54, 63, 15, -15, 183, 406, 512, 837, 544, 400, 36, -39, 21, 132, -258, --429, -396, -856, -1158, -1802, -891, -371, 245, -61, 50, 390, 223, -426, 848, 2178, 1837, 1691, 301, -29, -28, -25, -54, 39, 123, -167, -130, -364, -58, 1338, 466, 70, -119, -80, -203, -272, 48, 153, -135, -580, -1078, -1956, -1256, -1342, -1239, -2556, -3188, -3597, -1819, 2611, 1411, -952, 1033, 1423, 1171, 927, 619, 102, 3, 43, -7, 4, 407, 116, 162, 878, -91, -387, -406, -591, -545, -438, -409, -295, -83, 109, --222, -1471, -1519, -1479, -441, 485, 1652, 2647, 2965, 249, 398, 483, 531, 722, 540, 584, 805, 769, 739, 702, 642, 504, 197, 287, 371, -595, 276, 12, -219, -374, -617, -938, -843, -816, -696, -949, -796, -520, 928, 1834, 2396, 1882, 1079, 224, 231, 454, 418, 405, 557, 747, -653, 567, 470, 221, 165, 276, 289, 318, 458, 588, 538, 324, 393, 448, 512, 601, 752, 965, 1170, 1218, 1301, 1070, 1067, 1052, 1062, -917, 711, 411, 333, 259, 392, 64, 72, 186, 303, 376, 390, 444, 508, 466, 418, 349, 320, 365, 332, 255, 195, 181, 37, -136, --233, -213, -274, -302, -303, -286, -271, -146, -16, 141, 226, 303, 349, 266, 149, 33, 17, 484, 510, 511, 451, 455, 416, 370, 357, -335, 358, 379, 376, 366, 382, 349, 317, 296, 262, 221, 237, 282, 316, 356, 380, 402, 411, 408, 386, 358, 314, 285, 289, 329, -390, 437, 480, 444, 464, 444, 417, 379, 405, 378, 363, 379, 375, 371, 375, 374, 375, 360, 378, 293, 321, 333, 361, 352, 352, -353, 356, 363, 376, 366, 367, 375, 395, 410, 408, 416, 417, 422, 428, 531, -66, -106, -39, -55, -54, -82, -14, -10, -10, -21, --43, -77, -71, -62, -32, -16, -2, 18, -19, -36, -34, -61, -77, -87, -83, -84, -105, -65, -55, -71, -62, -73, -98, -120, -128, --91, -124, -174, -35, -38, -33, -152, 90, 141, 73, 44, -22, -100, -108, -67, -2, 89, 138, 124, 102, 62, 15, -72, -117, -127, --119, -123, -188, -103, -101, -172, -130, -155, -225, -260, -252, -131, -212, -289, 54, 3, 27, -180, 233, 316, 201, 177, 20, -142, -163, --79, 112, 303, 361, 324, 270, 195, 142, -69, -147, -178, -182, -200, -323, -101, -32, -183, -94, -170, -364, -435, -488, -208, -360, -183, -214, 77, -61, -379, 376, 525, 469, 326, 61, -70, -36, 149, 474, 458, 568, 634, 604, 441, 317, -57, -217, -220, -223, -236, -463, --166, -167, -492, -311, -387, -633, -661, -559, -104, -290, -1147, -1391, -97, 470, -63, 169, 234, 333, -220, -307, 57, -104, 63, 397, 621, -617, 258, 321, 289, 159, 105, 33, 87, -166, -397, -647, -208, 94, 387, 479, 187, -356, -843, -1288, -1550, -1319, 126, -883, -814, -402, -445, -149, -503, -480, -309, -226, -214, 18, -6, -29, -171, 38, 790, 325, 91, -9, 82, 48, 1, 230, 6, -599, -835, -759, -245, -170, 142, -580, -303, 2, 462, 322, -3544, -2166, -475, -161, -302, -456, -253, 92, 53, 45, -70, 6, -173, 45, -144, 0, 560, 459, -418, 194, 169, 182, 131, 180, 17, -19, -614, -673, -451, 30, 143, -741, -661, -1607, -2581, -3614, 3369, 3049, 2457, 2056, 1839, 1328, 812, -334, 306, 164, -34, 14, -4, 179, 126, 199, 454, 301, 124, -182, 3, 21, -142, 176, -55, -329, -1349, -1454, -906, -220, -221, -1168, --1253, -440, 1484, 2719, 326, 269, 369, 538, 809, 673, 723, 856, 707, 590, 436, 618, 477, 177, 80, 147, 510, 251, 122, -148, -274, --354, -524, -711, -1095, -1428, -1861, -1719, -1084, -488, 429, 1375, 1970, 2049, 1813, 801, 600, 687, 839, 827, 685, 515, 374, 342, 219, 167, -93, 200, 372, 490, 531, 474, 512, 282, 274, 193, 89, -9, -173, 21, 175, 182, 800, 1227, 1559, 1586, 1408, 1075, 492, 197, 234, -440, 204, 291, 339, 456, 581, 590, 605, 623, 615, 609, 569, 517, 366, 292, 374, 525, 657, 621, 540, 541, 621, 668, 698, 633, -578, 489, 485, 440, 453, 270, 137, 42, 109, 123, 34, 107, 328, 283, 306, 251, 247, 241, 221, 198, 192, 200, 208, 230, 266, -285, 309, 328, 306, 342, 338, 516, 460, 372, 335, 286, 259, 234, 295, 345, 399, 443, 486, 486, 436, 398, 386, 367, 260, 234, -325, 362, 423, 299, 370, 423, 426, 425, 427, 422, 421, 422, 375, 344, 439, 423, 405, 418, 366, 356, 327, 305, 280, 237, 253, -256, 257, 269, 283, 316, 306, 300, 289, 270, 301, 113, 89, 93, 89, 74, -6, 130, 121, 58, 77, 58, 5, 14, 20, 31, -107, 143, 96, 101, 94, 81, 92, 88, 66, 86, 97, 94, 142, 137, 86, 61, 55, 105, 73, 76, 99, 93, 115, 143, 146, -163, -12, 188, 234, 140, 194, 140, -2, 18, 42, 76, 204, 251, 245, 167, 100, 47, 68, 60, 8, 52, 89, 91, 238, 219, -89, 28, 34, 207, 134, 141, 159, 111, 55, 27, 110, 132, -194, 314, 357, 136, 265, 153, -154, -95, -48, 29, 332, 419, 387, -236, 154, 12, 46, 20, -103, 1, 69, 47, 357, 320, 18, -123, -176, 163, 13, 49, 102, 71, 112, 236, 460, 319, -302, 378, -589, 361, 481, 171, -213, -175, 38, 250, 605, 681, 537, 393, 222, -42, -29, -43, -233, -62, 37, 18, 519, 410, -34, -177, -100, -481, 335, 350, 298, 115, -352, -922, -1275, -675, 315, 383, 290, 4, -230, -337, -156, -132, 36, 211, 525, 603, 404, 402, 347, 366, -44, -112, -165, -218, -175, -12, 237, 409, 734, -220, -721, -542, -974, -845, -379, -222, -339, -88, 188, 64, -440, -557, -519, -310, -278, --220, -271, 46, 66, -21, -75, -4, 267, 432, 444, 142, -106, -256, -382, -451, -565, -599, -444, -259, 263, 210, 333, 317, 545, 374, --28, -438, -1360, -2195, -1836, -1234, -770, -357, -119, -144, -57, 62, -95, -18, -49, -86, 29, -137, -270, 282, 385, -30, -183, -331, -385, --454, -634, -933, -662, -495, -200, -544, -875, -1082, -1137, -650, -159, -815, 761, 1787, 2511, 2110, 1705, 1009, 516, 48, 160, 29, -60, 26, -0, -137, -57, 16, -97, 470, 499, -148, 22, -56, -90, -408, -625, -1044, -675, -631, -759, -919, -904, -770, -1468, -1685, -1266, -328, 2225, -1634, 1231, 1111, 935, 849, 767, 670, 589, 414, 145, 78, 148, 442, 153, 52, 14, 25, -111, -543, -785, -972, -969, -953, -798, -885, --340, -461, -1190, -1264, -1286, -1054, 298, 1433, 2202, 2361, 521, 502, 502, 509, 406, 422, 455, 461, 536, 547, 511, 388, 293, 249, 364, -451, 445, 323, 112, -132, -266, -373, -430, -683, -745, -587, -349, -71, 221, 814, 1236, 1372, 1417, 1178, 801, 615, 608, 647, 612, 633, -689, 599, 490, 399, 436, 446, 513, 497, 521, 467, 479, 433, 430, 478, 549, 631, 679, 712, 766, 861, 953, 1035, 1060, 1096, 1120, -869, 666, 546, 492, 480, 442, 550, 229, 232, 191, 233, 211, 199, 229, 228, 264, 273, 286, 300, 330, 362, 435, 510, 593, 663, -733, 745, 697, 685, 645, 615, 571, 529, 473, 417, 396, 376, 368, 314, 301, 274, 252, 234, 213, 213, 147, 120, 94, 179, 137, -116, 118, 124, 129, 137, 138, 131, 198, 250, 216, 256, 295, 340, 336, 337, 340, 340, 344, 356, 330, 305, 268, 245, 221, 200, -215, 223, 230, 224, 216, 67, 46, 2, 52, 66, 38, 85, 91, 73, 99, 93, 67, 60, 60, 58, 80, 96, 155, 110, 93, -74, 67, 61, 53, 47, 56, 104, 75, 51, -30, 11, 24, 56, 58, 67, 85, 58, 23, -20, 140, 120, 22, 113, 128, 85, -130, 115, 53, 19, 20, 44, 129, 177, 252, 181, 121, 89, 80, 52, 42, 14, 47, 168, 83, -10, -184, -101, -36, 79, 88, -100, 114, 57, -19, -160, 30, 60, -118, 223, 222, 45, 183, 155, -8, -25, -42, 10, 177, 310, 459, 310, 180, 91, 108, 48, -19, -32, 33, 276, 133, -9, -425, -242, -162, 34, 111, 134, 194, 68, -40, -124, 379, 304, -220, 191, 395, 190, 413, 247, -159, --195, -64, 100, 425, 533, 620, 374, 169, 60, 81, -12, -38, -102, 29, 393, 121, -268, -780, -445, -150, 183, 234, 289, 257, 121, --72, -370, -1387, -957, 694, 341, 167, 31, -185, -279, -203, -17, 90, 47, 241, 432, 763, 416, 269, 257, 276, 232, 137, -112, -92, -243, 334, 386, 535, -810, -1117, -481, -444, -330, -322, 25, -271, -119, 547, 295, -673, -823, -708, -364, -294, -164, -207, -36, 15, -44, --10, -94, -247, 207, 288, 47, -46, -231, -313, -215, -170, -252, -29, -54, -99, -109, -180, -477, -7, -60, -577, -380, 672, -349, -910, --824, -615, -279, 17, -135, -124, 28, 33, 19, 30, 34, 188, -37, -356, 227, 266, -126, -234, -413, -479, -630, -565, -386, -169, -257, --703, -753, -776, -1065, -318, 19, 103, 828, -2512, -801, 436, 610, 582, -48, -307, -388, -134, -166, -222, -71, -52, -237, -189, -191, -284, -181, 221, 14, -229, -401, -299, -301, -262, -298, -290, -289, -275, -254, -357, -886, -380, -922, -2365, -2729, 2292, 2567, 2102, 1718, 1324, 1380, -1247, 834, 532, 283, 68, 15, 63, 183, 139, 63, -183, -104, -204, -292, -254, -305, -305, -255, -157, 5, -308, -453, -378, -671, -998, --1525, -1386, -599, 689, 1645, 1140, 845, 793, 807, 677, 728, 706, 578, 668, 665, 625, 614, 458, 160, -17, -49, 44, 213, 177, -67, --254, -432, -586, -793, -1005, -1201, -1422, -1343, -885, -568, 71, 911, 1681, 1943, 1747, 1417, 1019, 847, 714, 642, 548, 463, 367, 270, 271, -298, 298, 330, 345, 400, 427, 431, 420, 389, 459, 390, 333, 347, 317, 456, 582, 702, 927, 1116, 1282, 1350, 1427, 1514, 1303, 1206, -1186, 1107, 759, 740, 525, 689, 607, 613, 659, 637, 673, 626, 595, 590, 567, 535, 485, 449, 452, 420, 381, 303, 383, 467, 527, -601, 663, 728, 730, 739, 760, 810, 859, 947, 925, 898, 846, 784, 727, 749, 632, 570, 463, 671, 574, 468, 456, 462, 468, 464, -467, 471, 538, 581, 447, 501, 523, 553, 603, 631, 671, 698, 727, 766, 765, 775, 783, 788, 786, 790, 765, 755, 747, 748, 778, -101, 53, 37, 59, 74, 84, 96, 75, 62, 69, 75, 97, 63, 58, 57, 85, 108, 124, 128, 132, 126, 120, 114, 105, 95, -93, 130, 61, 40, 33, 53, 71, 90, 114, 110, 65, 66, 12, 0, 40, 116, 169, 88, 68, 98, 111, 122, 152, 80, 65, -74, 124, 170, 230, 235, 216, 188, 192, 165, 133, 101, 86, 162, -34, -94, -70, -36, 30, 75, 148, 133, 8, 20, -126, -208, --48, 90, 204, 118, 73, 88, 99, 146, 199, 86, 19, 57, 154, 264, 391, 391, 356, 256, 271, 220, 160, 105, 95, 281, -118, --228, -235, -134, 2, 82, 250, 218, -76, -80, -214, -240, 30, 206, 245, 64, 102, 99, 227, 219, 74, -98, -54, 89, 300, 436, -603, 485, 437, 330, 383, 292, 176, 89, 88, 303, -303, -579, -491, -297, -8, 45, 265, 195, -244, -197, -207, -241, -818, -678, 416, -412, 348, 75, 22, -52, -140, 74, 81, -33, 175, 358, 609, 543, 448, 193, 216, 170, 105, 112, 134, 276, 63, 146, 563, -416, --481, 145, 392, 481, 177, 14, 348, 448, 244, 104, -334, -480, -432, -262, -208, -100, -71, -67, 17, 94, 177, 77, -21, 134, 210, -365, 226, 75, -17, -150, -140, -66, -308, -406, -324, -388, -384, -327, -671, -899, -1061, -183, 263, 447, 55, -224, -552, -316, -165, -370, --255, -71, 31, -8, 13, 50, 62, 7, -5, 125, 124, 265, 27, -43, 131, 79, 41, -46, -118, -194, -285, -509, -475, -59, 325, -489, 444, 206, -2423, -2115, -1495, -1055, -781, -727, -591, -576, -364, -262, -132, -2, 49, -31, -12, -64, -104, -125, -5, 432, 162, 10, --156, -225, -234, -203, -163, -152, -68, -325, -476, -229, -829, -1056, -975, -2033, 832, 1517, 1885, 1743, 1456, 1557, 1177, 453, 332, 147, 167, -10, -67, -120, 10, 28, -113, 137, 134, 124, -92, -159, -47, -156, -349, -571, -515, -577, -686, -637, -645, -612, -1186, -1355, -1006, 31, -1248, 1208, 1171, 1075, 910, 803, 804, 872, 807, 733, 697, 540, 443, 419, 216, 100, -51, -84, -160, -266, -472, -592, -651, -766, -745, --549, -688, -770, -887, -1011, -1085, -1023, -289, 407, 925, 1128, 1252, 1101, 998, 922, 807, 777, 742, 671, 580, 555, 450, 474, 444, 454, -397, 329, 265, 147, 39, -84, -101, -122, -152, -102, -99, -100, -51, 17, 54, 530, 1009, 1440, 1477, 1492, 1614, 1395, 1057, 1100, 1055, -1044, 1004, 979, 953, 928, 907, 871, 825, 791, 737, 676, 630, 586, 560, 523, 500, 433, 496, 552, 600, 645, 700, 752, 807, 859, -877, 894, 857, 894, 902, 949, 980, 1020, 926, 949, 920, 898, 860, 893, 858, 814, 796, 777, 767, 746, 735, 727, 748, 747, 696, -704, 702, 672, 704, 722, 746, 765, 783, 803, 817, 836, 867, 877, 898, 908, 911, 909, 903, 917, 961, 147, 106, 99, 113, 132, -195, 136, 111, 129, 109, 118, 165, 120, 109, 96, 125, 141, 145, 165, 173, 173, 159, 151, 142, 139, 127, 116, 75, 62, 51, -112, 133, 115, 155, 155, 114, 117, 112, 102, 119, 202, 362, 134, 85, 174, 132, 153, 245, 143, 117, 102, 147, 184, 217, 269, -260, 239, 223, 198, 174, 166, 120, 73, -56, -85, -79, 82, 147, 80, 175, 156, 58, 100, 36, -18, 73, 210, 569, 129, 65, -238, 112, 154, 364, 157, 77, 87, 166, 251, 322, 416, 414, 344, 303, 244, 200, 175, 103, 38, -220, -291, -308, 47, 192, 28, -264, 241, 35, 72, 122, 64, 173, 366, 827, 111, -49, 222, 143, 216, 385, 59, -33, 89, 237, 379, 504, 565, 538, 430, 407, -317, 267, 219, 83, -76, -503, -620, -568, 12, 214, -78, 202, 147, -168, 17, -75, -293, -432, -332, -50, 313, 486, 379, 147, 0, --57, 112, 141, 69, 239, 349, 455, 685, 656, 375, 350, 205, 78, 7, 40, 161, 69, 27, -90, -139, 16, 475, 445, 534, 607, -275, 355, 1309, 87, -267, -135, -177, -205, -216, -73, 7, -26, -84, -32, 79, 172, 154, 180, 59, 77, 337, 184, 102, 26, -119, --186, -179, -173, -27, 208, 143, 19, 137, -1000, -1211, -527, -324, -144, -11, 179, 11, -634, -409, -240, -262, -240, -136, 11, 14, 93, -82, 111, 186, 265, 107, 195, 703, 315, 185, 134, 46, 26, 58, -174, -277, -190, -56, 94, 193, 627, 537, -40, -41, 63, -922, --1598, -1466, -1147, -597, -256, -257, -230, -118, 7, -12, 8, 68, 69, -10, -34, -79, 29, 364, 164, 53, -138, -234, -378, -311, -360, --248, -26, 3, -161, -611, -582, -621, -745, 80, -1810, -1023, 45, 424, 566, 444, 116, -189, -128, -135, -26, 84, 59, -81, 50, 113, -176, -40, -58, 207, 88, -44, -262, -322, -306, -145, -289, -265, -103, -277, -301, -329, -215, -581, -1358, -1716, 1295, 1604, 1629, 1455, 1348, -1050, 1000, 1178, 1001, 824, 553, 489, 471, 459, 305, 85, -144, -237, -278, -175, -296, -329, -262, -334, -318, -301, -327, -390, -586, -665, --869, -1151, -1226, -882, -40, 710, 729, 877, 892, 925, 932, 945, 946, 936, 834, 753, 682, 533, 408, 258, 240, 215, 180, 138, 66, --54, -188, -289, -410, -501, -586, -681, -733, -797, -891, -631, -410, -193, 164, 442, 673, 673, 705, 745, 903, 783, 841, 849, 832, 846, -759, 702, 667, 586, 533, 477, 433, 317, 225, 141, 161, -29, 12, 50, 77, 110, 131, 145, 211, 293, 364, 415, 452, 483, 499, -523, 583, 656, 647, 632, 758, 816, 894, 731, 818, 892, 869, 852, 825, 817, 806, 789, 664, 574, 723, 605, 533, 398, 441, 432, -435, 434, 439, 437, 474, 498, 527, 545, 572, 606, 614, 623, 622, 629, 741, 183, 158, 163, 168, 178, 243, 161, 150, 173, 154, -157, 190, 161, 152, 145, 157, 165, 167, 191, 202, 214, 193, 182, 172, 169, 151, 110, 106, 105, 102, 160, 176, 146, 187, 187, -150, 164, 174, 214, 230, 288, 408, 178, 121, 200, 174, 199, 245, 193, 172, 152, 173, 191, 214, 279, 298, 315, 264, 234, 204, -191, 126, 6, -27, -20, -7, 160, 208, 109, 210, 190, 102, 137, 167, 159, 225, 293, 590, 156, 97, 261, 166, 182, 321, 186, -141, 125, 182, 228, 241, 382, 420, 433, 337, 274, 216, 196, 75, -136, -193, -187, -142, 152, 254, 66, 268, 279, 112, 190, 228, -297, 408, 606, 971, 199, -50, 271, 162, 231, 485, 142, 25, 152, 268, 324, 368, 553, 599, 593, 461, 365, 287, 221, -1, -382, --526, -464, -353, 143, 264, -35, 260, 151, -96, 50, 126, -14, -355, -486, -415, 219, 574, 557, 287, 28, -91, 97, 175, 145, 337, -378, 391, 495, 501, 481, 228, 97, 78, 55, 73, 59, 301, 268, -226, 271, 360, 183, 287, 646, 1295, 576, -37, 1171, 199, -175, -139, -123, -144, -83, 68, 151, 79, 1, 32, 154, 140, 213, 286, 215, 204, 292, 179, 122, -15, -41, -12, 118, 181, 299, 358, -159, 208, 494, -335, -707, -606, -579, -211, -162, -153, -178, -394, -469, -419, -94, -189, -158, -24, 48, 123, 36, 128, 248, 270, 86, -183, 426, 313, 279, 110, 94, 42, 54, -207, -213, 115, 139, 250, 370, 305, 298, 29, -57, 205, 228, -536, -832, -677, -417, -134, -24, -57, 62, 85, -1, 20, 162, 152, 148, 169, 217, 214, 169, 226, 211, 73, 148, 135, 67, -178, -183, -9, -257, -320, -334, --544, -531, -265, -13, -1780, -2038, -1284, -680, -335, -585, -673, -434, -421, -339, -127, 93, 139, 73, 46, 63, 204, 36, 37, 194, 224, -158, -48, -121, -191, -264, -197, -139, -239, -39, -60, -215, -416, -588, -742, -1383, -55, 528, 901, 832, 889, 835, 786, 861, 763, 659, -439, 363, 247, 167, 205, 159, 125, -21, -60, -49, -75, -81, -114, -102, -147, -170, -175, -250, -426, -298, -342, -517, -691, -837, -858, --471, 375, 715, 805, 882, 1032, 949, 886, 829, 761, 669, 632, 556, 529, 458, 322, 193, 66, -80, -255, -406, -506, -611, -719, -746, --770, -798, -845, -885, -930, -973, -1034, -1115, -761, -421, -138, 169, 178, 231, 419, 285, 362, 394, 383, 436, 318, 275, 225, 130, 55, --7, 21, 26, -6, -1, 53, 33, -13, -68, -123, -183, -250, -324, -272, -233, -190, -149, -88, -68, -10, 12, 62, 111, 42, 29, -153, 234, 373, 121, 246, 406, 374, 348, 317, 304, 285, 252, 138, 43, 249, 130, 67, -22, -40, -64, -88, -114, -136, -174, -144, --131, -116, -104, -95, -83, -58, -30, -5, 16, -41, 168, 167, 152, 167, 174, 213, 142, 146, 164, 171, 173, 176, 176, 171, 152, -147, 148, 174, 179, 181, 185, 173, 163, 153, 152, 139, 110, 110, 110, 105, 137, 147, 137, 157, 163, 154, 168, 200, 190, 258, -249, 294, 150, 112, 146, 180, 216, 206, 219, 192, 134, 146, 156, 209, 235, 277, 283, 231, 203, 166, 161, 123, 42, 28, 28, -28, 131, 160, 126, 162, 159, 141, 179, 253, 197, 267, 245, 391, 118, 89, 172, 205, 233, 235, 231, 199, 86, 138, 162, 237, -297, 347, 396, 280, 237, 164, 164, 72, -75, -84, -69, -64, 86, 151, 93, 170, 212, 186, 276, 302, 295, 447, 540, 671, 165, --45, 153, 193, 288, 413, 218, 105, 78, 217, 229, 306, 446, 554, 618, 411, 298, 174, 145, 16, -255, -325, -265, -201, 102, 155, -72, 151, 101, 54, 201, 365, 92, -123, -375, -534, 68, 449, 593, 470, 153, -99, 61, 146, 208, 368, 339, 311, 233, 236, 244, -86, 121, 189, 114, 122, 129, 593, 504, -270, 61, 110, 70, 164, 518, 1200, 727, -463, 26, 409, 339, 172, 2, -142, -162, 31, -174, 227, 95, 68, 147, 134, 253, 321, 324, 324, 211, 286, 256, 34, 75, 105, 149, 314, 303, -34, 173, 120, -151, -257, -438, --631, -581, -223, -106, -84, -114, -45, -225, -340, 69, -69, -93, 11, 86, 134, 77, 127, 246, 147, 94, 121, 134, 368, 398, 162, -246, 154, -20, -6, 56, 154, 360, 500, 514, 230, 48, -144, -174, 47, -278, -96, -140, -246, -253, -122, 213, 62, 139, 146, 51, -60, 163, 194, 272, 285, 325, 303, 162, 275, 301, 244, 282, 241, 17, 87, 27, -185, -275, -334, -429, -36, 127, -8, 152, -377, --748, -967, -887, -724, -730, -635, -402, -405, -344, -239, -64, 66, 177, 131, 137, 201, 173, 190, 132, 260, 252, 144, 20, -37, -31, -29, 16, -104, 87, -47, -471, -594, -655, -685, -443, -977, -761, -449, -247, -72, 201, 260, 205, 130, 115, 114, 263, 273, 249, 199, -166, 179, 31, -24, 13, 155, 185, 152, -6, -95, -192, -216, -249, -263, -343, -183, 208, 66, -138, -438, -804, -161, 74, 263, 322, -512, 478, 442, 455, 483, 468, 512, 388, 363, 264, 207, 107, 42, -3, -63, -71, -170, -290, -380, -439, -490, -562, -527, -515, -478, --572, -705, -865, -811, -716, -627, -350, -131, -63, 42, -24, 31, 35, 59, 95, 54, 33, 28, -9, -24, -40, -55, -91, -130, -164, --159, -288, -339, -368, -412, -462, -515, -578, -563, -561, -552, -533, -485, -463, -354, -287, -236, -183, -248, -232, -208, -174, -133, -194, -154, --103, -118, -123, -139, -135, -143, -149, -196, -239, -178, -241, -271, -330, -332, -358, -379, -399, -416, -442, -425, -417, -409, -402, -399, -401, --375, -347, -307, -281, -373, 139, 143, 120, 129, 132, 147, 116, 123, 125, 147, 154, 148, 162, 158, 127, 123, 121, 156, 143, 138, -126, 130, 128, 127, 131, 129, 120, 116, 115, 121, 115, 117, 122, 126, 126, 112, 140, 148, 124, 174, 155, 165, 111, 96, 88, -151, 186, 171, 223, 196, 113, 115, 123, 194, 175, 199, 160, 145, 140, 135, 151, 145, 113, 106, 106, 136, 128, 119, 121, 108, -103, 79, 137, 225, 124, 152, 121, 175, 78, 79, 87, 182, 226, 188, 273, 250, 69, 108, 116, 242, 200, 217, 188, 146, 151, -131, 165, 144, 91, 88, 86, 145, 89, 97, 120, 119, 118, 63, 215, 156, 120, 231, 289, 324, 95, -2, 28, 159, 274, 291, -295, 180, -16, 138, 170, 332, 311, 363, 294, 184, 153, 115, 165, 150, 24, 24, 58, 215, 192, 103, 104, 28, -13, -77, 120, -538, 240, -89, -372, -483, -71, 212, 383, 584, 349, -29, 13, 102, 324, 331, 268, 238, 109, 52, 11, 89, 181, 245, 222, 226, -235, 499, 330, -226, -234, -121, 293, 287, 432, 777, 634, -501, -928, 616, 859, -2, 241, 105, -152, 23, 172, 331, 163, 95, 164, -232, 347, 245, 240, 229, 125, 315, 286, 111, 132, 189, 279, 275, 186, -207, 305, 80, -846, -459, -334, -413, -362, -86, -211, -210, --159, 140, 80, -79, 132, 62, -13, 65, 59, 103, 117, 43, 96, -11, -35, 4, 1, 187, 213, 94, 84, -2, -47, 111, 262, -146, 377, 446, 392, 173, 16, 190, -2, 34, 37, 128, 174, -36, -31, -55, 8, 1, 58, 98, 43, 61, 123, 168, 241, 170, -170, 193, 117, 173, 209, 211, 160, 126, 96, 84, -106, -485, -332, -282, -180, 40, 183, 288, 56, -97, -175, -460, -695, -869, -605, --436, -335, -236, -196, -184, -149, -32, 184, 112, 117, 100, 194, 195, 51, 148, 217, 271, 221, 149, 45, 14, -56, -166, -140, -130, --146, -290, -329, -234, -118, -770, -874, -866, -641, -335, -149, -143, -308, -296, -237, -118, 62, 147, 167, 88, 67, 62, 95, 122, 123, -222, 220, 148, 119, 48, -2, -85, -116, -71, -188, -278, -340, -134, -121, -340, -580, -448, -454, -307, -266, -162, -134, -80, -7, 109, -168, 286, 188, 177, 144, 96, 44, -6, -49, -84, -137, -102, -64, -20, -63, -111, -165, -168, -183, -189, -170, -125, -113, -233, -346, --417, -426, -194, -143, -74, -77, -27, -9, 14, 45, 10, -14, -20, -31, -31, -34, -88, -123, -162, -198, -274, -255, -288, -341, -379, --424, -452, -489, -466, -461, -469, -476, -500, -502, -437, -360, -304, -248, -272, -253, -264, -255, -251, -231, -228, -210, -221, -223, -237, -238, --250, -254, -258, -250, -303, -295, -295, -267, -294, -305, -320, -328, -340, -358, -359, -361, -358, -356, -352, -364, -339, -327, -309, -292, -357, -99, 98, 87, 95, 97, 105, 91, 101, 101, 118, 126, 123, 145, 142, 110, 100, 86, 122, 101, 96, 79, 86, 87, 96, 95, -95, 89, 82, 82, 108, 84, 82, 92, 78, 74, 62, 89, 82, 62, 83, 83, 101, 95, 90, 71, 116, 141, 140, 202, 184, -107, 95, 90, 133, 113, 115, 76, 77, 84, 107, 107, 96, 79, 61, 77, 160, 104, 88, 98, 40, 23, 7, 70, 144, 97, -87, 66, 81, 77, 101, 86, 156, 203, 180, 298, 282, 110, 108, 85, 162, 119, 106, 60, 58, 81, 123, 128, 123, 87, 54, -51, 215, 80, 70, 116, 17, -9, -61, 85, 54, 21, 28, 100, 159, 82, 57, 13, 128, 201, 182, 346, 255, 1, 95, 148, -309, 181, 131, 31, 12, 44, 112, 125, 80, 8, -15, 81, 380, 190, 102, 114, -118, -192, -221, 3, 392, 317, 46, -235, -464, --79, 134, 165, 545, 488, 151, 17, 88, 372, 235, 166, 169, 69, 45, 78, 178, 213, 258, 239, 306, 491, 174, -130, -365, -309, --101, 268, 414, 448, 401, 340, -236, -1081, 314, 709, -21, 245, 174, 46, 40, 109, 345, 252, 184, 161, 290, 351, 135, 144, 153, -137, 213, 240, 289, 283, 289, 281, 187, 127, -25, 420, 239, -391, -293, -249, -201, -37, 191, -250, -255, -199, 47, 247, 184, 62, -122, 84, 95, 74, 116, 151, 11, -55, -129, -101, -71, -94, -17, 55, 173, -67, -137, -63, 128, 269, 179, 358, 267, 64, 37, -72, 378, 297, 203, 303, 266, 185, -19, 12, -40, -107, -13, 20, 59, 62, 74, 74, 118, 144, 46, 32, 46, 94, 145, 153, -186, 63, 4, 33, -26, -147, -338, -150, -100, -33, 81, 177, 277, 186, -177, -304, -431, -605, -842, -700, -527, -327, -165, -83, -70, --106, -48, 65, 66, 76, 0, 78, 94, 81, 6, 33, 179, 161, 122, 6, -42, -113, -157, -319, -305, -50, -84, -91, -67, -98, --431, -508, -543, -420, -187, -272, -342, -413, -409, -361, -260, -217, -115, 65, 44, 74, 67, 152, 162, 149, 119, 130, 225, 112, 61, --43, -72, -111, -153, -163, -289, -491, -605, -579, -441, -439, -586, -678, -598, -571, -519, -421, -296, -187, -94, -39, 55, 52, 99, 127, -63, 21, -30, -10, -3, 59, 149, 196, 276, 214, 167, 115, 76, 32, -29, -12, 17, 61, -67, -225, -380, -498, -227, -220, -164, --132, -93, -79, -65, -32, -36, -29, -15, 10, 35, 71, 21, -1, -17, -43, -108, -100, -112, -127, -132, -135, -129, -120, -142, -165, --190, -224, -273, -311, -315, -287, -265, -240, -124, -124, -142, -155, -179, -108, -129, -144, -133, -123, -121, -117, -121, -117, -88, -59, -160, --120, -103, -72, -79, -74, -75, -70, -69, -65, -79, -88, -97, -105, -110, -124, -114, -118, -121, -125, -64, 48, 48, 69, 66, 65, -68, 60, 70, 69, 83, 89, 90, 107, 105, 87, 62, 39, 60, 52, 53, 43, 50, 50, 52, 38, 26, 6, 7, 15, 60, -37, 37, 46, 27, 20, 10, 33, 34, 70, 46, 59, 69, 96, 89, 54, 89, 109, 115, 163, 154, 107, 65, 37, 29, 46, -60, 44, 62, 62, 60, 14, -31, -70, -78, -33, 95, 47, 42, 42, -23, -46, -47, 5, 87, 174, 119, 99, 71, 112, 141, -91, 160, 196, 197, 295, 279, 165, 97, 31, 9, 53, 68, 50, 76, 80, 88, 10, -56, -149, -162, -115, 131, 24, 30, 62, --62, -98, -116, -13, 47, 117, 1, 68, 121, 173, 153, 59, 155, 189, 196, 387, 329, 129, 112, 96, 111, 63, 46, 8, 61, -77, 80, -60, -232, -342, -335, -130, 265, 92, 64, 47, -215, -305, -236, -60, 155, 448, 402, 162, -284, -109, 62, 122, 400, 499, -369, 92, 81, 306, 140, 111, 160, 169, 190, 190, 213, 221, 270, 301, 372, 538, -105, -415, -413, -218, 25, 85, 509, 505, 137, -36, 60, -814, -577, -136, 293, 209, 181, 247, 95, 75, 295, 339, 282, 142, 244, 229, 92, 56, 54, 112, 95, 167, 347, 348, -304, 230, 90, 80, 183, 279, 141, -211, -92, -77, -162, 248, 453, 149, 130, 133, 159, 271, 206, -18, 102, 122, 90, 83, 110, -184, 27, -96, -51, -71, -93, -76, -99, -34, 150, -62, -64, 27, 120, 146, 233, -6, -160, -186, -175, 30, 315, 426, 172, 173, -71, -27, -150, -82, -94, -114, 52, 86, 55, 132, 124, 53, 28, 24, 33, -27, 11, 128, 181, 181, 178, 33, -33, -81, -147, --145, 35, -4, 121, 386, 337, 271, 191, 200, -210, -211, -405, -511, -525, -600, -499, -342, -206, -95, -57, -55, -57, -96, 3, 37, -9, 1, 6, 50, -24, -27, 2, 51, 61, 20, -44, -118, -122, -315, -372, -287, -120, 15, 88, -106, -285, -288, -290, -274, -240, --377, -462, -473, -425, -377, -329, -343, -263, -102, 10, 79, 83, 111, 118, 114, 43, 31, 43, 100, 70, 0, -63, -111, -150, -184, --216, -282, -351, -427, -470, -359, -446, -486, -478, -435, -405, -327, -229, -143, -143, -179, -157, -119, -7, 33, 40, 48, 86, 100, 122, -139, 133, 139, 134, 148, 169, 211, 120, 27, -81, -133, -189, -230, -293, -345, -418, -437, -285, -329, -282, -259, -226, -201, -194, -164, --156, -124, -92, -75, -57, -16, -8, 5, 8, 13, -1, 60, 69, 70, 76, 88, 93, 109, 69, 50, 28, 3, -26, -56, -109, --156, -194, -241, -91, -119, -85, -78, -61, -75, -56, -32, -15, 0, 8, 22, 28, 35, 12, 12, 14, 21, 24, 40, 35, 41, -44, 46, 46, 52, 38, 26, 12, -1, -14, -23, -35, -48, -63, -77, 10, -2, 5, 42, 35, 33, 27, 22, 32, 23, 45, -50, 47, 61, 59, 52, 13, -9, 0, 4, 7, 5, 16, 12, 3, -22, -39, -60, -47, -35, -2, -14, -11, 6, -25, -31, --30, -16, -6, 68, 46, 39, 27, 83, 75, 13, 61, 80, 86, 112, 104, 88, 15, -25, -47, -20, 13, 16, 47, 37, -3, --77, -128, -158, -128, -77, 6, -17, -18, 1, -80, -99, -78, -45, 41, 233, 165, 124, 55, 126, 149, 49, 160, 186, 184, 246, -229, 162, 44, -40, -85, -20, 24, 44, 101, 81, 14, -120, -215, -296, -243, -173, -8, -50, -41, 37, -143, -171, -126, -73, 25, -230, 91, 89, 89, 269, 238, 74, 184, 206, 237, 424, 385, 217, 98, -8, -92, -51, 11, 38, 139, 113, -16, -251, -430, -479, --366, -149, 85, -16, -30, 32, -274, -340, -194, -101, 97, 496, 655, 454, -55, -214, -107, 109, 212, 396, 576, 156, 36, 204, 73, -111, 203, 242, 256, 196, 173, 186, 214, 266, 251, 170, -323, -567, -591, -188, 49, -154, 348, 326, -168, -77, -54, -534, -1165, -765, -605, 277, 171, 223, 130, 104, 212, 360, 323, 114, 136, 91, 79, 41, 38, 87, 14, 91, 266, 311, 236, 103, 25, 91, 343, --24, -188, -266, 55, 152, 13, 191, 635, 684, 637, 516, 284, 252, 216, 38, 135, 152, 71, 85, 102, 168, 62, -46, 20, -17, --48, -57, -102, -66, -4, 28, 110, 150, 115, 9, 125, -297, -386, -206, -61, 183, 336, 486, -15, -165, -222, -187, -128, -40, -63, --59, 58, 109, 84, 153, 111, -8, -27, -34, 4, -19, 17, 112, 141, 163, 157, 113, 53, -93, -161, -67, 276, 138, 299, 617, -533, 414, 205, 130, -65, -105, -241, -307, -299, -343, -284, -224, -179, -123, -135, -118, -109, -152, -24, 5, 7, 4, 11, 36, 22, --1, -23, -3, 14, 53, 32, -3, -71, -167, -261, -427, -205, -54, 12, -29, -163, -177, -182, -256, -439, -508, -549, -533, -452, -379, --327, -321, -282, -215, -78, 17, 108, 80, 69, 57, 20, -6, -45, 6, 41, 74, -1, -52, -102, -78, -54, -73, -98, -142, -142, --167, -227, -229, -242, -205, -173, -177, -189, -191, -243, -315, -356, -311, -216, -194, -69, 14, 145, 115, 102, 94, 65, 48, 19, 40, -55, 88, 10, -47, -106, -178, -256, -319, -311, -291, -282, -258, -270, -317, -344, -324, -327, -317, -308, -294, -262, -220, -183, -167, -148, --126, -81, -57, -19, 17, 85, 95, 87, 90, 87, 85, 75, 73, 45, 29, 14, 2, -4, -21, -67, -123, -175, -225, -128, -145, --135, -132, -122, -127, -119, -105, -92, -83, -73, -61, -53, -45, -52, -53, -15, -17, -12, -14, -14, -15, -16, -18, -19, -17, -25, --34, -43, -53, -64, -67, -82, -91, -101, -114, -64, -35, -30, 5, -1, -4, -23, -12, -3, -22, 8, 12, 6, 10, 6, 11, --28, -43, -39, -35, -30, -22, -16, -22, -39, -57, -67, -78, -56, -47, -37, -42, -40, -21, -56, -62, -52, -47, -45, 26, 21, --2, -46, 44, 51, -22, 39, 52, 57, 50, 42, 62, -32, -70, -80, -65, -33, -13, 10, -9, -68, -121, -145, -149, -81, -40, --29, -44, -52, -22, -105, -121, -90, -78, -26, 164, 127, 86, -26, 95, 119, -4, 148, 172, 146, 147, 125, 135, -24, -94, -107, --77, -27, 23, 67, 29, -79, -182, -239, -264, -148, -89, -52, -63, -74, 17, -172, -198, -117, -117, -56, 153, 79, 21, -47, 266, -281, 74, 208, 220, 228, 374, 344, 232, 29, -101, -154, -129, -54, 27, 109, 45, -153, -328, -408, -372, -144, 25, 45, -38, -76, -20, -261, -298, -147, -130, 57, 433, 719, 607, 108, -316, -328, -10, 50, 254, 617, 164, -7, 97, 41, 101, 137, 191, 212, 179, -153, 145, 119, 197, 108, -147, -376, -505, -505, -103, 52, -221, 128, 40, -419, -197, -365, -536, -1145, -849, 365, 360, 281, 168, 112, -107, 120, 303, 310, 142, 87, 34, 97, 93, 67, 21, -25, 18, 86, 192, 155, 63, -4, 88, 390, -195, -336, -209, 82, 228, -268, 9, 619, 847, 846, 658, 246, 105, 167, 226, 205, 168, 65, 60, 61, 108, 93, 26, 23, -15, -66, -88, -61, -49, -64, -144, 256, 287, 191, 15, -123, -295, -289, -311, 368, 526, 191, 424, -222, -327, -425, -282, -33, -11, -42, 0, -5, 31, 50, 57, -20, -38, -56, -84, -75, -13, 25, 35, 28, 79, 111, 147, 99, 13, 0, 123, 291, 373, 440, 321, 373, 279, 145, -27, 27, -148, 3, -52, -74, -78, -48, -56, -77, -75, -123, -163, -159, -122, -85, -38, 52, 5, 4, 24, 82, 90, 54, 44, 35, 40, -48, 5, -92, -63, -56, -112, -79, -69, -24, -47, -74, -135, -203, -299, -495, -547, -550, -495, -433, -372, -322, -268, -237, -233, -159, --86, 31, 61, 81, 57, 49, 23, -7, -20, 6, 104, 73, 40, 2, -46, -47, 34, 18, 5, 2, -27, -72, -66, -100, -96, --79, -149, -231, -311, -338, -363, -400, -374, -350, -337, -189, -70, 66, 51, 56, 70, 44, 27, 11, -6, -32, -58, -66, -63, -56, --97, -140, -185, -158, -125, -101, -92, -154, -164, -215, -202, -228, -225, -209, -216, -183, -172, -158, -148, -139, -141, -127, -134, -123, -106, --68, -77, -77, -72, -70, -67, -61, -58, -62, -72, -79, -80, -78, -87, -95, -117, -133, -144, -131, -130, -132, -131, -131, -128, -129, --133, -134, -131, -125, -123, -118, -112, -116, -119, -86, -94, -94, -101, -96, -97, -97, -97, -97, -95, -101, -105, -109, -114, -118, -118, --123, -123, -124, -126, -143, -41, -39, -18, -16, -19, -52, -24, -21, -39, -12, -7, -7, -22, -26, -6, -41, -51, -57, -48, -42, --28, -33, -38, -51, -62, -63, -63, -36, -30, -35, -41, -42, -30, -56, -61, -52, -50, -55, -16, -4, -22, -88, 11, 32, -16, -34, 41, 56, 10, 1, 49, -49, -81, -94, -74, -50, -22, -28, -51, -90, -125, -121, -100, -6, 24, -13, -39, -63, -42, -96, --102, -78, -77, -56, 61, 83, 63, -93, 50, 74, -12, 132, 160, 146, 70, 37, 130, -59, -106, -119, -92, -49, 6, -4, -47, --119, -192, -195, -173, -11, 37, -11, -35, -70, -17, -146, -166, -101, -117, -87, 33, 39, -37, -178, 182, 274, 97, 240, 257, 238, -258, 234, 229, -40, -141, -153, -125, -65, 30, 10, -74, -213, -327, -312, -218, 101, 228, 94, -15, -104, -60, -211, -197, -108, -122, -1, 259, 624, 617, 229, -303, -448, -168, -30, 139, 419, 154, 11, -5, 51, 109, 37, 89, 116, 132, 71, 67, 67, 108, 0, --244, -376, -422, -287, 5, 102, -32, -3, -173, -423, -238, -448, -547, -939, -787, -178, 349, 441, 241, 69, 37, 41, 197, 243, 178, -84, 25, 86, 102, 61, 12, -2, -7, -39, 47, 48, 33, -6, 88, 347, -200, -298, -19, 41, 240, 553, -34, 410, 778, 684, -497, 65, -163, -27, 298, 241, 180, 36, 29, 17, 30, 113, 95, 6, -22, -62, -54, -43, -40, -22, 183, 279, 306, 246, 63, --230, -117, 5, -20, 389, 285, -188, 77, -310, -389, -410, -275, -26, 6, 3, 19, -37, -37, -8, -52, -72, -37, -96, -134, -121, --45, -31, -78, -44, 13, 55, 92, 82, 153, 191, 277, 278, 468, 386, -3, 6, 8, 33, -130, 272, 309, 194, 141, 131, 104, -79, 49, 3, -6, -6, -109, -144, -108, -109, -56, 15, 12, 26, 28, 86, 98, 83, 56, 28, -8, -33, -69, -113, 4, 121, -290, 170, 105, 158, 205, -165, -191, -315, -409, -507, -534, -486, -366, -356, -321, -270, -212, -176, -169, -178, -153, -87, 37, 91, 72, -74, 68, 81, 12, 21, 67, 88, 101, 70, 51, 12, 1, -9, -26, -95, -112, 7, 6, -40, -81, -107, -170, -253, -339, -344, --337, -364, -322, -320, -279, -200, -111, -46, -17, 19, 85, 78, 66, 67, 45, 21, -12, 1, 15, 33, 24, 25, 20, 26, 28, -36, 19, -102, -100, -124, -110, -121, -120, -103, -98, -89, -91, -95, -93, -96, -111, -114, -118, -109, -91, -90, -58, -62, -58, -57, --54, -47, -42, -49, -62, -71, -80, -91, -103, -104, -105, -106, -104, -85, -77, -100, -109, -124, -95, -113, -126, -133, -137, -138, -145, --147, -150, -127, -106, -129, -111, -99, -78, -82, -81, -80, -79, -79, -76, -82, -84, -88, -92, -94, -98, -94, -91, -89, -86, -113, --31, -31, -21, -15, -16, -45, -18, -19, -27, -13, -7, 3, -25, -30, -6, -34, -41, -58, -46, -40, -26, -34, -39, -47, -51, --47, -39, -15, -10, -17, -24, -30, -34, -44, -46, -38, -38, -37, -20, -4, -10, -67, 4, 28, 15, 34, 39, 70, 2, -10, -36, -40, -68, -100, -74, -55, -32, -54, -73, -93, -108, -86, -45, 37, 57, 17, -18, -52, -60, -79, -72, -49, -52, -39, 7, -54, 60, -82, 39, 54, 24, 116, 143, 180, 45, 6, 117, -53, -88, -140, -105, -70, -20, -64, -98, -135, -169, -137, -85, 66, -106, 43, 14, -45, -71, -119, -127, -68, -79, -36, -4, 47, -15, -176, 109, 235, 144, 255, 296, 292, 166, 142, 220, -63, -132, --160, -121, -74, -12, -102, -175, -243, -283, -205, -65, 230, 298, 138, 24, -97, -153, -181, -117, -47, -61, -55, 56, 387, 493, 305, --175, -396, -241, -54, 73, 158, 179, 89, -81, 76, 114, -33, -3, 0, 31, 8, 33, 52, 35, -65, -232, -371, -332, 10, 118, -153, 165, -67, -284, -327, -215, -358, -310, -642, -646, -543, 212, 495, 337, 61, -41, -56, 75, 158, 175, 103, 38, 65, 29, 0, --1, -23, -39, -83, -81, -58, -29, 70, 131, 171, -187, -217, 174, 88, 316, 763, 6, 181, 775, 329, 126, -70, -289, -176, 155, -196, 171, 15, -9, -28, 3, 94, 114, 12, 17, 6, 11, -40, -25, 64, 158, 215, 224, 175, 68, -85, 3, 203, 542, -47, --429, -567, -294, -294, -413, -252, -125, -39, 44, 65, 30, -2, -51, -36, -90, -97, -40, -113, -143, -130, -107, -114, -137, -112, -82, --32, -9, 71, 221, 330, 367, 281, 380, 236, 36, -128, -124, -92, -154, 431, 290, 242, 176, 167, 133, 85, 43, 22, 29, 74, -2, -64, -113, -108, -78, -57, 0, 36, 39, 72, 77, 63, 43, 4, -65, -95, -70, -7, 141, 255, 402, 327, 334, 425, 469, --237, -232, -367, -434, -444, -388, -312, -231, -244, -233, -191, -171, -139, -128, -157, -157, -149, -36, 32, 77, 84, 95, 107, 79, 65, -67, 107, 123, 125, 91, 58, 37, -15, -67, -151, -193, -9, -18, -77, -136, -208, -239, -289, -337, -315, -286, -286, -226, -209, -148, --142, -114, -114, -47, 21, 95, 87, 93, 101, 95, 90, 80, 87, 95, 113, 110, 111, 107, 75, 48, 32, 15, -50, -42, -65, --58, -65, -69, -68, -72, -68, -66, -70, -64, -68, -74, -73, -60, -48, -32, -36, 1, -8, -11, -16, -19, -22, -23, -30, -41, --55, -66, -76, -80, -70, -60, -56, -53, -4, 7, -13, -24, -42, -25, -42, -58, -58, -60, -59, -64, -64, -65, -41, -25, -48, --30, -21, -3, -10, -11, -13, -14, -15, -16, -20, -21, -21, -22, -23, -30, -24, -21, -16, -9, -9, -18, -16, -13, -8, -7, --24, -5, -10, -9, -10, -5, 11, -15, -20, -7, -19, -24, -52, -37, -33, -23, -30, -32, -35, -34, -27, -11, -1, 3, -2, --7, -15, -30, -33, -34, -25, -21, 2, 2, 17, 19, -15, 17, 32, 41, 30, 30, 64, 6, -2, 17, -16, -40, -97, -72, --65, -49, -71, -80, -82, -77, -43, 17, 58, 62, 29, 3, -29, -61, -70, -56, -23, -13, 5, 0, 47, 64, -22, 54, 52, -64, 87, 101, 177, 46, 16, 78, -20, -45, -150, -109, -92, -60, -106, -122, -125, -123, -69, 24, 95, 115, 57, 52, -12, -92, --115, -115, -44, -28, 70, 49, 107, 63, -72, 96, 205, 197, 251, 308, 332, 123, 97, 184, -31, -85, -190, -145, -124, -105, -199, --235, -233, -207, -82, 130, 286, 264, 120, 54, -54, -178, -177, -91, 15, 40, -135, -131, 83, 241, 300, -31, -259, -239, -106, 11, -4, 231, 189, -99, 78, 95, -13, -35, -47, -9, 26, 62, 53, 24, -77, -256, -345, -223, 221, 177, 165, 207, -135, -350, -326, --226, -166, -33, -301, -442, -568, -1, 335, 321, 106, -38, -137, -33, 72, 133, 99, 40, 53, -57, -93, -92, -80, -71, -82, -140, --107, -77, 213, 232, 20, -160, -138, 234, 218, 428, 741, 102, -156, 518, 0, -184, -67, -197, -148, -61, 60, 104, 32, -35, -57, -7, 44, 85, 36, 51, 61, 72, 16, 42, 145, 154, 167, 127, 64, 48, 114, 91, 244, 694, -394, -837, -659, -522, -165, -290, --97, 10, 29, 36, 44, 14, 18, -57, -57, -68, -59, -48, -84, -109, -130, -151, -163, -141, -159, -151, -114, -58, 87, 236, 335, -364, 348, 255, 114, 154, -12, -12, -63, -69, 269, 37, 113, 103, 134, 149, 108, 35, 28, 44, 86, 89, 23, -97, -113, -123, --115, -35, 24, 60, 56, 62, 72, 46, 3, -49, -15, 60, 183, 245, 308, 367, 352, 378, 404, 392, -117, -197, -261, -290, -287, --180, -98, -80, -87, -101, -96, -137, -133, -126, -109, -117, -157, -111, -55, 19, 48, 77, 80, 92, 92, 73, 74, 72, 103, 92, -81, 56, 31, 6, -36, -62, -72, -76, -136, -198, -285, -287, -300, -309, -272, -231, -202, -157, -132, -96, -102, -99, -101, -52, -9, -21, 33, 62, 86, 92, 98, 106, 107, 112, 120, 106, 91, 68, 22, -19, -49, -59, -16, -14, -24, -36, -40, -48, -63, -78, --74, -68, -66, -62, -61, -57, -38, -15, 1, 16, 32, 57, 50, 43, 38, 31, 27, 22, 13, 2, -9, -20, -26, -24, -15, --6, -4, -9, -11, -9, -9, -12, -13, -34, -36, -39, -33, -33, -29, -27, -22, -20, -16, -15, -2, 0, 1, 5, 0, -2, --5, -7, -8, -10, -12, -12, -12, -11, -12, -17, -18, -20, -19, -15, -20, -6, -2, -5, 1, 3, -1, 2, -3, 5, -8, --6, 5, -5, -7, -6, -2, -4, -35, -23, -22, -19, -22, -22, -24, -15, -6, 16, 10, 10, 3, 5, -3, -21, -25, -25, --12, -6, 41, 23, 38, 39, 26, 22, 28, 53, 16, 10, 30, 9, 10, 2, 13, -6, -71, -59, -64, -59, -73, -72, -65, --36, 5, 75, 69, 55, 20, 16, -9, -47, -60, -43, 6, 28, 43, 2, 49, 64, 39, 55, 35, 78, 34, 32, 100, 42, -39, 39, 24, 13, -112, -86, -95, -86, -115, -113, -105, -61, 4, 131, 102, 98, 40, 71, 17, -85, -108, -102, -13, 18, 170, -92, 147, 123, 40, 88, 156, 233, 220, 264, 293, 109, 90, 137, 36, -10, -181, -148, -157, -172, -239, -240, -204, -105, 58, 312, -299, 198, 58, 64, -7, -151, -152, -65, 88, 148, -230, -226, -111, 44, 228, 79, -118, -240, -182, -50, -32, 266, 249, -87, 55, -67, 76, 18, -8, 10, 98, 121, 78, 19, -103, -281, -300, -107, 335, 197, 161, 195, -178, -358, -360, -284, 117, 147, -73, -307, --512, -206, 96, 209, 163, 32, -161, -113, -5, 92, 65, 18, 15, -85, -117, -151, -92, -79, -86, -149, -91, -10, 328, 286, -47, --130, -72, 201, 346, 465, 496, 228, -576, -163, -174, -192, -49, -39, -53, -196, -76, 10, 56, -24, -55, -6, -12, 30, 49, 41, -53, 40, 67, 119, 170, 166, 132, 42, -2, 59, 183, 298, 272, 157, -521, -735, -468, -627, 112, 27, 49, 88, 144, 36, 7, -14, 14, -48, -68, -30, -11, -45, -34, -67, -131, -163, -165, -144, -166, -158, -133, -40, 87, 226, 276, 288, 292, 108, 18, 106, -108, 132, 109, 125, -106, -213, -73, -2, 53, 126, 124, 66, 69, 75, 69, 99, 53, -44, -107, -152, -143, -90, -22, 31, 38, -55, 51, 65, 61, 62, 136, 218, 334, 319, 343, 338, 342, 269, 97, 3, 106, -24, -58, -41, -16, 54, 94, 66, 65, 30, --4, -80, -112, -125, -100, -101, -114, -142, -120, -65, -10, 33, 36, 72, 75, 49, 23, 11, 37, 45, 60, 73, 86, 127, 182, -164, -133, -152, -190, -240, -313, -295, -276, -260, -225, -191, -153, -131, -112, -103, -94, -94, -88, -65, -44, -48, -20, 22, 63, 52, -47, 52, 56, 62, 65, 56, 42, 23, -8, -44, -77, -112, -7, -18, -24, -46, -51, -63, -89, -112, -108, -100, -93, -91, -85, --76, -51, -32, -16, -3, 24, 22, 26, 27, 32, 37, 46, 50, 47, 44, 41, 35, 32, 33, 25, 22, 18, 9, -57, -64, --57, -58, -55, -83, -81, -81, -71, -68, -64, -57, -51, -48, -50, -52, -27, -31, -30, -32, -30, -31, -32, -31, -31, -29, -30, --30, -29, -26, -24, -22, -31, -40, -49, -54, -68, 2, 8, 0, 5, 8, 13, 3, -4, 8, -13, -14, -12, -1, 2, -5, -9, 11, -15, -10, -13, -14, -14, -12, -12, 2, 12, 35, 17, 13, 3, 14, 8, -13, -14, -12, 2, 7, 60, 28, 40, -38, 47, 12, 8, 44, -8, -20, -18, 5, 18, -1, 34, 23, -28, -42, -61, -62, -65, -55, -40, 9, 52, 115, 71, 44, -4, 26, 12, -32, -34, -17, 35, 55, 58, -2, 35, 49, 83, 30, -5, 56, -35, -47, -17, 20, 53, 17, 60, 61, -36, --51, -84, -91, -101, -84, -71, 8, 72, 197, 97, 78, 15, 82, 49, -72, -67, -54, 30, 51, 205, 92, 131, 127, 122, 52, -78, 202, 145, 161, 150, 99, 110, 103, 103, 72, -100, -121, -174, -212, -237, -204, -144, 21, 196, 420, 275, 132, -10, 73, 41, --120, -72, 11, 159, 209, -287, -232, -210, -84, 153, 115, -25, -226, -203, -65, -11, 238, 220, -44, 14, 29, 148, 114, 104, 137, -220, 191, 108, -28, -181, -292, -240, 5, 390, 218, 160, 199, -166, -302, -319, -310, 290, 228, 108, -166, -455, -347, -112, 83, 158, -71, -130, -154, -66, 61, 12, -23, -40, -49, -60, -134, -65, -76, -87, -119, -23, 161, 347, 225, -115, -123, -10, 179, 421, 422, -175, 231, -792, -877, -249, -53, -118, 103, 48, -215, -131, -48, 47, 20, -25, -45, -49, -3, 62, 19, 1, -35, 72, 127, 127, -125, 67, -17, -34, 45, 92, 491, 335, -393, -429, -425, -322, -548, 398, 418, 247, 163, 185, 36, -9, 28, 13, -17, -60, -18, -0, -21, -1, -42, -118, -154, -153, -151, -145, -126, -101, 14, 104, 222, 211, 181, 115, -69, -88, -9, 79, 115, 173, 263, -362, --322, -183, -53, 25, 69, 87, 88, 94, 91, 49, 56, 36, 16, -95, -156, -155, -145, -98, -57, -14, 28, 32, 77, 118, 183, -236, 293, 371, 332, 321, 261, 278, 141, -143, -290, 271, 172, 148, 162, 185, 212, 212, 173, 169, 128, 73, -6, -72, -124, -113, --102, -83, -119, -117, -103, -48, -10, 4, 34, 33, -3, -24, -27, -15, 15, 48, 79, 121, 190, 285, 296, -138, -180, -195, -221, --266, -243, -209, -183, -170, -154, -135, -129, -122, -132, -117, -122, -122, -112, -101, -105, -73, -36, 4, -6, -7, 1, -6, -13, -23, --14, -11, 1, 5, -4, -22, -93, -44, -66, -67, -93, -101, -113, -140, -161, -155, -144, -133, -129, -121, -110, -91, -78, -64, -53, --32, -40, -29, -21, -9, 7, 25, 41, 43, 48, 52, 51, 49, 44, 14, -7, -19, -28, -99, -110, -102, -103, -101, -123, -123, --126, -114, -111, -106, -99, -92, -88, -89, -89, -69, -72, -70, -72, -66, -62, -60, -56, -53, -47, -49, -49, -49, -48, -46, -39, --51, -61, -76, -89, -104, 15, 20, 8, 9, 12, 28, 7, -2, 12, -15, -18, -21, 1, 8, 2, 19, 25, 10, 5, 0, --2, 1, 5, 9, 23, 32, 48, 30, 25, 11, 29, 25, -1, 4, 8, 23, 21, 65, 29, 27, 27, 67, -1, -13, 32, --34, -49, -47, -3, 19, 4, 47, 46, 22, -17, -47, -49, -42, -21, 5, 57, 93, 130, 78, 46, 4, 46, 42, -11, 4, -22, 70, 72, 64, -4, 7, 22, 117, -4, -47, 30, -100, -118, -108, -16, 41, 5, 76, 86, 46, -14, -62, -77, -64, -35, --9, 79, 131, 214, 108, 88, 19, 110, 88, -51, -9, 11, 85, 79, 193, 69, 66, 84, 188, -7, -23, 122, 23, 16, -28, -71, 117, 79, 139, 137, 35, -69, -170, -213, -187, -120, -28, 158, 307, 426, 244, 101, -29, 106, 102, -68, 29, 105, 232, 232, --295, -196, -259, -170, 78, 101, 30, -143, -139, -35, 4, 146, 125, 31, -32, -25, 145, 180, 231, 292, 303, 219, 107, -100, -249, --261, -124, 150, 429, 265, 160, 138, -136, -218, -218, -281, 266, 270, 294, 46, -361, -385, -228, -17, 92, 49, -79, -140, -96, 31, --35, -45, -68, 13, 26, -42, -27, -61, -44, -55, 69, 328, 255, 50, -246, -133, 55, 210, 467, 362, -83, 87, -648, -1250, -475, --140, -205, 135, 99, -123, -118, -69, 29, 55, 7, -77, -58, -16, 61, 24, -3, -28, 57, 85, 70, 53, -12, -61, -68, 18, -39, 474, 274, -545, -364, -274, -208, -261, 510, 702, 479, 273, 138, 57, 31, 38, 19, 15, -34, -27, -11, 14, 13, -18, -68, --112, -130, -130, -104, -72, -22, 59, 126, 196, 157, 70, -92, -156, -121, -67, -12, -1, 85, 231, -380, -280, -216, -81, 3, 5, -22, 88, 77, 61, 22, 6, 1, 25, -80, -136, -172, -171, -154, -140, -82, -25, 11, 70, 139, 238, 253, 287, 320, 299, 255, -165, 141, 21, -185, -327, 284, 248, 252, 245, 238, 234, 210, 188, 189, 170, 126, 67, -10, -92, -107, -98, -69, -75, -76, -80, --52, -37, -27, -1, -5, -33, -26, -9, 10, 41, 88, 134, 163, 200, 258, 276, -102, -145, -150, -155, -177, -143, -100, -68, -83, --89, -103, -109, -127, -143, -135, -140, -146, -135, -123, -112, -91, -72, -50, -45, -34, -18, -25, -34, -42, -38, -33, -14, 1, 11, -8, -55, -107, -129, -130, -145, -156, -167, -186, -201, -190, -175, -162, -151, -139, -128, -119, -112, -103, -95, -85, -90, -81, -71, -61, --46, -31, -15, -16, -11, -8, -4, -3, -7, -38, -67, -85, -95, -115, -126, -122, -125, -126, -133, -136, -144, -134, -130, -125, -119, --113, -107, -105, -103, -97, -98, -95, -97, -88, -83, -78, -73, -70, -63, -65, -66, -67, -69, -71, -66, -75, -82, -93, -104, -105, -26, 30, 18, 15, 17, 40, 12, 4, 19, -11, -16, -16, 4, 13, 9, 26, 32, 30, 18, 13, 10, 15, 21, 30, 40, -46, 53, 40, 36, 24, 39, 35, 12, 20, 25, 40, 34, 64, 29, 14, 17, 75, -9, -27, 20, -53, -66, -52, -15, 10, -9, 50, 58, 55, 7, -23, -26, -13, 16, 56, 96, 117, 122, 76, 47, 16, 58, 58, 14, 37, 53, 93, 80, 70, 0, --14, -4, 124, -29, -69, 12, -141, -163, -140, -58, 5, -8, 71, 84, 89, 12, -36, -52, -26, 12, 67, 135, 167, 193, 115, -98, 48, 117, 97, -17, 39, 65, 128, 101, 165, 50, 1, 27, 209, -65, -114, 36, -101, -124, -149, 13, 82, 67, 142, 167, -143, -13, -126, -165, -110, -15, 121, 270, 360, 356, 186, 67, -3, 113, 125, 6, 114, 173, 275, 229, -236, -147, -253, -198, 7, -93, 93, -1, -47, -14, -15, 27, 32, 93, -83, -100, 59, 157, 252, 310, 254, 152, 29, -158, -236, -179, 106, 360, 424, 300, -130, -7, -144, -161, -126, -198, 122, 254, 428, 241, -214, -378, -311, -104, 9, 13, -41, -88, -96, -14, -50, -21, -47, 66, 92, -63, -3, -34, 27, 42, 157, 340, 97, -140, -381, -143, 101, 232, 402, 233, -288, -88, -299, -1206, -817, -472, -149, 28, 29, 11, --68, -58, 13, 53, 20, -90, -55, -35, 28, 44, 41, 41, 59, 40, 5, -40, -97, -102, -105, 9, 137, 247, 36, -408, -218, --114, -125, 87, 344, 656, 618, 398, 128, 109, 112, 55, 9, 11, -15, -34, -17, 26, 17, 14, 5, -41, -79, -76, -54, -14, -63, 80, 123, 136, 96, -14, -181, -165, -111, -78, -95, -93, 1, 92, -218, -173, -199, -108, -35, -39, -25, 71, 34, 0, -23, --28, -25, -4, -56, -100, -180, -179, -183, -179, -142, -85, -16, 43, 119, 207, 224, 255, 259, 243, 169, 74, 34, -35, -138, -192, -174, 196, 209, 188, 179, 161, 134, 123, 131, 142, 130, 114, 52, -34, -76, -86, -73, -54, -45, -41, -39, -41, -45, -5, 6, -0, 40, 66, 88, 119, 176, 230, 215, 196, 187, 171, -20, -53, -49, -27, -23, 7, 46, 77, 37, 12, -34, -54, -94, -114, --118, -124, -139, -128, -118, -103, -96, -89, -87, -63, -37, -10, -7, 0, 9, -5, -17, -14, -10, 2, 12, -3, -149, -159, -168, --164, -177, -181, -190, -199, -185, -171, -159, -143, -132, -124, -121, -116, -113, -109, -107, -108, -102, -96, -89, -82, -77, -69, -79, -84, --89, -87, -84, -86, -98, -116, -132, -144, -112, -117, -118, -121, -123, -117, -119, -129, -123, -120, -116, -114, -109, -104, -103, -103, -102, --103, -103, -104, -97, -92, -87, -83, -79, -74, -77, -78, -82, -86, -92, -95, -99, -100, -102, -105, -100, 31, 35, 25, 23, 23, -43, 16, 11, 22, -5, -10, -5, 6, 13, 12, 28, 34, 38, 26, 22, 15, 22, 29, 44, 49, 51, 49, 43, 40, 35, -40, 36, 22, 31, 37, 51, 41, 59, 31, 14, 13, 61, -11, -31, 2, -61, -70, -43, -25, -2, 3, 46, 60, 62, 30, -6, -3, 12, 44, 92, 119, 125, 99, 71, 49, 37, 55, 56, 32, 59, 75, 106, 80, 74, 12, -8, -8, 96, -38, -72, --13, -157, -182, -128, -91, -34, -35, 53, 66, 81, 30, -9, -33, -1, 42, 121, 164, 176, 148, 115, 101, 86, 93, 74, 15, -75, 106, 160, 114, 127, 37, -25, -11, 159, -103, -172, -43, -199, -226, -177, -61, 15, 41, 118, 159, 176, 47, -42, -87, -27, -79, 241, 337, 365, 263, 150, 64, 61, 94, 104, 67, 172, 224, 299, 208, -81, -69, -155, -135, -17, 112, 165, 153, 28, -27, --50, -58, -25, 124, -121, -171, -62, 25, 116, 153, 79, 7, -106, -201, -199, -147, 261, 460, 323, 255, 63, -150, -145, -118, -92, --60, -14, 157, 434, 322, -69, -358, -381, -192, -52, 3, -21, -37, -80, -62, -31, 29, 3, 96, 121, 140, 33, 23, 101, 169, -226, 208, -61, -273, -433, -117, 135, 200, 225, 35, -388, -191, -152, -981, -986, -686, 20, -93, -99, 60, -27, -30, 4, 25, 11, --82, -56, -63, -27, 35, 63, 69, 41, -11, -78, -130, -160, -132, -118, 44, 313, 2, -234, -288, -71, 70, 34, 167, 79, 292, -562, 469, 216, 142, 154, 103, 8, -1, -4, -26, -16, 3, 14, 43, 68, 29, -12, -18, -2, 40, 123, 100, 99, 65, 46, --48, -150, -102, -54, -48, -105, -74, 92, 5, -16, -50, -145, -128, -82, -45, -27, 47, -1, -44, -61, -47, -36, -30, -29, -64, --159, -170, -186, -173, -164, -124, -50, 21, 96, 154, 189, 221, 216, 183, 100, 35, -12, -46, -71, -35, 6, 52, 85, 81, 82, -66, 50, 45, 55, 79, 88, 110, 81, 20, -34, -64, -80, -64, -53, -37, -31, -23, -30, 24, 60, 86, 145, 173, 197, 219, -261, 299, 248, 184, 109, 40, 106, 85, 81, 106, 121, 142, 163, 188, 144, 113, 63, 26, -31, -60, -75, -86, -111, -101, -94, --84, -85, -86, -91, -65, -41, -17, 9, 40, 76, 59, 44, 37, 32, 42, 65, 91, -129, -124, -137, -115, -128, -126, -124, -129, --126, -128, -129, -122, -121, -125, -120, -115, -112, -108, -110, -106, -100, -94, -89, -86, -85, -82, -95, -108, -117, -120, -116, -116, -108, --109, -117, -127, -91, -89, -97, -100, -103, -86, -89, -96, -98, -100, -101, -104, -104, -105, -103, -101, -102, -101, -100, -99, -95, -92, --88, -86, -83, -79, -82, -83, -86, -89, -93, -99, -99, -98, -94, -90, -97, 27, 31, 25, 24, 22, 32, 15, 11, 12, -4, --9, -3, 3, 9, 7, 22, 26, 32, 24, 21, 14, 21, 27, 42, 45, 45, 36, 36, 35, 38, 29, 25, 19, 32, 38, -50, 37, 42, 26, 15, 7, 21, -13, -31, -29, -62, -63, -39, -30, -16, -16, 33, 49, 46, 39, 27, 15, 30, 58, 100, -118, 113, 70, 61, 47, 55, 39, 36, 28, 64, 82, 100, 65, 64, 29, 7, -2, 39, -31, -58, -61, -151, -181, -125, -114, --61, -73, 32, 41, 39, 33, 8, -14, 15, 54, 131, 159, 158, 97, 104, 95, 113, 51, 31, 18, 93, 127, 163, 105, 65, -23, -31, -39, 45, -109, -185, -130, -260, -279, -155, -117, -58, -18, 85, 125, 136, 87, 43, 5, 56, 145, 290, 345, 328, 181, -133, 85, 132, 61, 53, 67, 187, 243, 281, 157, 128, 51, 21, 15, 22, 158, 235, 270, 93, -20, -46, -72, -40, 127, -123, --195, -171, -133, -93, -99, -128, -156, -253, -245, -186, -140, 265, 382, 166, 140, -5, -196, -97, -55, -78, 97, -107, 35, 299, 275, -47, -331, -433, -246, -76, 8, -7, -6, -62, -92, -6, 65, 49, 93, 123, 190, 100, 110, 165, 267, 230, 27, -195, -339, -367, --31, 166, 145, 24, -161, -370, -225, -191, -635, -823, -623, 50, -122, -143, 3, -16, -7, -2, 8, 3, -54, -65, -93, -74, -11, -22, -3, -20, -64, -149, -183, -181, -145, -67, 100, 371, -182, -398, -217, 1, 198, 267, 45, -20, -53, 332, 400, 278, 100, 96, -116, 24, 5, 12, -8, -18, -28, 7, 57, 98, 74, 49, 33, 58, 90, 143, 124, 75, -4, -2, -57, -71, -52, -18, -37, -29, 100, 229, 55, 113, 49, -59, -110, -90, -25, -5, 6, -17, -40, -52, -46, -33, -28, -3, -28, -97, -138, -164, -149, -146, --122, -71, 6, 75, 117, 152, 168, 158, 100, 26, -23, -58, -74, -55, 55, -144, -101, -55, -23, 3, 1, 1, -1, 8, 19, -26, 65, 71, 53, 6, -32, -72, -82, -81, -65, -37, -4, 7, 74, 125, 159, 224, 257, 280, 272, 267, 254, 200, 127, 16, --83, 192, 184, 176, 180, 191, 195, 194, 202, 177, 162, 136, 100, 47, 20, -13, -38, -79, -70, -67, -64, -68, -74, -81, -63, --48, -35, 8, 51, 100, 100, 101, 104, 101, 110, 140, 172, -60, -52, -70, -45, -54, -52, -48, -49, -63, -80, -96, -103, -112, --127, -118, -109, -103, -99, -101, -94, -87, -81, -76, -74, -72, -72, -77, -85, -87, -88, -83, -77, -64, -56, -55, -61, -55, -49, --61, -65, -70, -51, -55, -57, -67, -73, -79, -87, -93, -102, -93, -89, -94, -89, -86, -83, -82, -81, -80, -79, -78, -77, -76, --74, -73, -71, -70, -70, -69, -69, -65, -58, -86, 20, 25, 23, 21, 18, 16, 13, 10, -3, -5, -10, -12, -4, 1, -3, -13, 16, 19, 18, 17, 14, 18, 23, 34, 37, 37, 25, 29, 29, 38, 19, 15, 11, 29, 35, 42, 29, 24, 21, 10, --2, -18, -12, -25, -58, -49, -43, -42, -24, -19, -35, 15, 30, 25, 35, 35, 32, 44, 64, 91, 106, 96, 48, 49, 45, -69, 27, 17, 12, 60, 79, 82, 46, 49, 46, 15, 2, -15, -13, -35, -114, -130, -165, -152, -121, -73, -105, 10, 11, -3, -23, 15, 10, 30, 60, 114, 142, 135, 66, 90, 86, 132, 21, 2, 3, 99, 130, 139, 84, 8, 11, -41, -63, -74, -88, --155, -212, -254, -261, -139, -130, -95, -91, 45, 71, 61, 95, 93, 83, 121, 184, 280, 319, 275, 123, 109, 103, 192, 46, 10, -27, 173, 234, 224, 95, 291, 182, 179, 155, 100, 203, 269, 295, 146, 27, 6, -26, -20, 101, -76, -156, -235, -236, -248, -270, --267, -275, -349, -263, -167, -84, 202, 233, 28, 21, -38, -126, -22, 13, -32, 217, -143, -60, 110, 158, 121, -267, -398, -234, -92, --7, -8, 6, -45, -89, 4, 68, 65, 68, 106, 199, 173, 199, 210, 271, 155, -99, -277, -340, -233, 75, 183, 93, -118, -276, --294, -209, -276, -301, -479, -410, -110, -59, -60, -75, -4, 11, -3, 3, 14, -18, -61, -103, -94, -55, -42, -94, -81, -104, -179, --180, -156, -137, 42, 160, 268, -270, -382, -53, 88, 258, 430, -87, 130, -51, 49, 136, 172, 12, -2, 59, 21, -2, 6, 4, --15, -34, 3, 54, 103, 93, 87, 78, 109, 118, 122, 118, 61, -35, -32, -64, -19, -40, 8, 33, 218, 283, 241, 195, 144, -94, 31, -36, -26, 2, 5, -29, -13, -12, -11, -23, -23, -13, 14, 5, -21, -77, -113, -114, -102, -86, -59, 0, 51, 87, -93, 84, 68, -3, -59, -97, -116, -99, -41, 96, -191, -188, -142, -94, -57, -40, -24, -19, -13, -18, -20, 6, 33, 57, 32, -0, -48, -85, -99, -90, -56, -12, 28, 96, 149, 185, 241, 269, 281, 241, 186, 115, 61, 6, -71, -144, 163, 170, 171, 159, -163, 157, 142, 134, 140, 150, 158, 137, 105, 89, 37, -1, -49, -40, -39, -41, -46, -55, -66, -57, -49, -45, -1, 40, 87, -103, 124, 141, 136, 135, 145, 156, 40, 48, 24, 35, 23, 18, 20, 15, -2, -26, -49, -62, -75, -90, -88, -81, -80, -82, --89, -87, -81, -74, -68, -66, -65, -66, -57, -51, -42, -35, -25, -10, 1, 16, 26, 33, -20, -9, -22, -25, -31, -16, -22, --27, -39, -45, -52, -60, -68, -78, -67, -66, -75, -71, -70, -70, -70, -71, -72, -72, -72, -73, -67, -62, -57, -50, -43, -38, --35, -33, -30, -24, -72, 12, 16, 19, 14, 11, 4, 10, 5, -18, -8, -12, -24, -11, -6, -11, 2, 5, 10, 9, 10, -11, 14, 18, 25, 28, 27, 15, 19, 20, 34, 9, 5, 2, 21, 27, 28, 19, 9, 15, -1, -13, -39, -9, -16, -69, --28, -21, -43, -13, -16, -42, -7, 4, 10, 21, 30, 39, 48, 62, 76, 84, 70, 26, 27, 31, 73, 15, 1, -3, 49, -65, 55, 26, 35, 53, 11, -2, -44, 1, -18, -153, -106, -138, -189, -114, -78, -119, -20, -23, -22, 2, 12, 28, 38, 61, -96, 118, 108, 42, 63, 63, 137, 0, -18, -15, 89, 115, 98, 61, -24, 3, -55, -84, -147, -60, -107, -240, -182, -182, -105, --90, -82, -125, -7, 1, -1, 71, 96, 127, 152, 196, 247, 267, 202, 58, 46, 84, 221, 33, -24, -9, 146, 195, 140, 40, -359, 267, 251, 225, 173, 225, 241, 215, 144, 56, 41, 19, 13, 54, 3, -64, -243, -264, -303, -319, -323, -327, -355, -241, -110, -54, 153, 101, -65, -60, -47, -24, 9, 52, 67, 284, -132, -93, -37, 41, 137, -174, -281, -167, -65, -21, -21, -5, -18, -64, --5, 43, 51, 33, 69, 163, 201, 234, 211, 180, 30, -169, -325, -309, -93, 141, 169, 73, -180, -313, -233, -182, -268, -49, -229, --242, -270, 9, 30, -65, 34, 10, 11, 2, 13, 12, -35, -80, -92, -67, -71, -124, -109, -124, -160, -141, -103, -83, 170, 207, -93, -303, -307, 86, 148, 274, 493, -104, 253, 252, -161, -220, -96, -57, -29, -3, 2, -14, -6, -3, -5, -18, 0, 35, 95, -99, 106, 111, 129, 112, 75, 61, 29, -34, -55, -77, -17, -40, 56, 200, 301, 247, 36, 166, 124, 107, 125, 96, 75, 19, --7, -31, 4, 10, 12, 5, -3, -2, 20, 31, 44, -2, -41, -59, -49, -37, -15, 6, 27, 49, 23, -4, -31, -100, -142, --167, -154, -80, -2, 121, -133, -171, -155, -129, -95, -67, -43, -36, -24, -28, -32, -29, -7, 29, 35, 18, -24, -72, -95, -91, --71, -39, 7, 75, 127, 159, 192, 202, 193, 148, 77, -22, -73, -109, -129, -134, 38, 54, 73, 67, 73, 67, 52, 38, 67, -94, 125, 123, 120, 122, 67, 28, -10, -12, -19, -33, -32, -36, -44, -38, -32, -27, 9, 41, 78, 87, 101, 114, 97, 77, -53, 47, 105, 113, 99, 93, 84, 76, 78, 75, 61, 40, 21, 7, -7, -18, -28, -29, -38, -50, -68, -70, -65, -61, -56, --55, -54, -57, -40, -26, -10, 3, 18, 39, 47, 62, 77, 93, 3, 12, 4, 3, -2, 9, 1, -5, -14, -19, -24, -30, --36, -42, -34, -34, -54, -50, -52, -51, -53, -54, -55, -56, -55, -58, -50, -43, -37, -28, -21, -14, -10, -6, -3, 0, -49, -8, 13, 18, 10, 7, -1, 9, 4, -23, -6, -10, -25, -12, -8, -11, -5, -2, 7, 5, 7, 10, 12, 15, 22, 22, -20, 12, 14, 14, 33, 6, 2, 0, 19, 23, 20, 15, 6, 15, -5, -15, -37, -3, -4, -60, -8, -2, -41, -8, -14, --33, -22, -15, 7, 9, 21, 36, 44, 55, 66, 60, 42, 11, 5, 16, 73, 9, -5, -4, 45, 56, 34, 17, 31, 56, -8, -5, -48, 11, -7, -153, -78, -100, -188, -95, -77, -100, -52, -54, -13, -14, 5, 34, 38, 60, 90, 91, 78, 30, 37, -39, 136, -11, -23, -13, 85, 105, 68, 52, -26, 4, -54, -86, -160, -34, -57, -183, -89, -80, -46, -32, -39, -100, -48, -61, --30, 29, 67, 127, 144, 181, 212, 191, 112, -4, -28, 46, 221, 22, -39, -7, 139, 164, 69, 9, 366, 290, 247, 227, 214, -209, 164, 95, 85, 29, 32, 15, 26, 15, 56, 34, -187, -225, -268, -279, -306, -308, -272, -160, 7, 241, 199, 76, -94, -78, --33, 49, 3, 74, 210, 333, -92, -67, -96, -32, 107, -93, -151, -66, -24, -19, -13, -13, -5, -26, -20, 11, 33, -2, 21, -98, 170, 209, 182, 76, -72, -209, -333, -234, 57, 167, 134, 75, -201, -304, -185, -152, -112, 176, -60, -130, -252, 29, 42, -1, -25, 5, 11, 7, 4, 14, -2, -34, -63, -35, -37, -76, -89, -112, -111, -94, -29, 46, 278, 225, -54, -263, -186, 207, 231, -313, 450, -2, 129, 445, -224, -460, -356, -80, -15, -17, -4, -10, -6, -8, -5, -6, -6, 8, 68, 99, 113, 129, 122, 85, -32, -5, -21, -35, -62, -67, -32, 25, 159, 385, 203, -8, -233, -64, 135, 185, 264, 272, 162, 40, -11, -8, 12, 9, 12, -12, 10, 4, 22, 46, 86, 76, 46, 21, 15, 17, 34, 34, 30, 32, -20, -54, -79, -136, -173, -178, -122, -11, 62, 133, --33, -81, -107, -116, -100, -77, -50, -42, -22, -21, -26, -32, -26, -4, 21, 23, 1, -46, -69, -67, -64, -52, -23, 35, 76, -99, 111, 109, 92, 73, 25, -63, -104, -128, -103, -66, -64, -50, -22, -10, 4, 1, -6, -16, 17, 43, 74, 81, 96, 109, -78, 51, 34, 21, 3, -20, -5, 1, 4, 14, 26, 40, 59, 75, 92, 80, 70, 64, 36, 3, -44, -52, 122, 127, 121, -109, 103, 97, 100, 101, 97, 89, 83, 79, 72, 69, 45, 36, 22, 4, -23, -22, -17, -17, -14, -13, -13, -15, 2, 15, -31, 47, 64, 82, 84, 92, 100, 113, 35, 39, 32, 31, 24, 37, 27, 18, 15, 13, 10, 9, 7, 8, 16, 18, -14, --5, -5, 0, -3, -3, -3, -3, -3, -5, 2, 7, 11, 17, 22, 28, 30, 33, 36, 35, 7, -3, 4, 7, 3, 1, --4, 0, 0, -19, -4, -6, -17, -9, -9, -7, -14, -14, 6, -1, -2, -2, 1, 3, 11, 5, 3, 1, 0, 1, 20, --6, -9, -9, 8, 12, 6, 5, -1, 8, -6, -17, -33, -4, -3, -49, -5, -5, -48, -29, -29, -23, -37, -32, 5, -6, -8, 15, 23, 31, 41, 17, 0, -14, -19, -2, 54, -7, -18, -10, 32, 37, 8, 4, 25, 47, 6, -11, -46, 9, -5, --111, -53, -63, -126, -71, -73, -62, -76, -81, 1, -26, -5, 13, 21, 39, 69, 40, 27, 5, 9, 11, 104, -27, -33, -10, -70, 86, 39, 42, -20, 5, -39, -75, -130, -15, -21, -89, -22, -14, -2, -4, -8, -42, -55, -88, -31, -9, 28, 79, 99, -129, 150, 75, -9, -70, -76, 14, 173, -1, -50, 2, 123, 123, 7, -11, 336, 246, 206, 190, 185, 144, 71, 22, 23, 3, -9, 0, 14, 0, 54, 76, -85, -157, -203, -213, -255, -248, -164, -54, 122, 346, 221, 54, -108, -91, -39, 61, -20, 81, 309, -353, -48, -9, -88, -56, 46, -39, -47, -6, -10, -4, -3, -3, -5, -5, -20, -17, 21, -28, -28, 15, 95, 141, 127, -1, --141, -261, -320, -155, 164, 134, 54, 27, -242, -302, -163, -128, 51, 309, 94, -24, -133, 8, 23, 5, 4, 3, 2, 3, 3, -4, 9, 5, -24, 10, 19, 2, -47, -86, -67, -61, 36, 193, 296, 161, -180, -187, -53, 256, 288, 321, 289, 72, -186, 190, --209, -453, -412, -82, -5, -5, -3, -3, -3, -4, -4, -3, -8, -10, 19, 76, 102, 114, 87, 44, -11, -62, -90, -83, -92, --66, -67, 127, 241, 364, -39, -302, -395, -313, 129, 306, 406, 403, 177, 66, -1, 6, 6, 3, 6, 7, 7, 4, 12, 40, -85, 127, 117, 90, 70, 57, 59, 51, 34, 16, -53, -92, -112, -156, -185, -168, -96, -5, 46, 54, 18, -8, -49, -69, -72, --56, -37, -25, -8, -7, -12, -15, -17, -14, 6, 17, 18, -18, -41, -47, -53, -55, -47, -17, -1, 4, 10, 10, 1, 8, --9, -66, -80, -90, -53, -14, -112, -109, -80, -66, -49, -44, -40, -37, -12, 3, 27, 27, 47, 56, 59, 53, 56, 39, 22, --2, 18, 32, 43, 60, 78, 99, 95, 88, 79, 47, 16, -9, -30, -56, -95, -101, 72, 71, 90, 73, 80, 78, 81, 86, -90, 96, 105, 109, 113, 119, 98, 84, 68, 53, 33, 30, 34, 32, 32, 31, 29, 29, 35, 41, 49, 59, 69, 74, 69, -68, 66, 70, 47, 43, 47, 49, 48, 49, 47, 44, 47, 48, 48, 51, 52, 58, 56, 57, 39, 43, 42, 45, 43, 44, -44, 45, 45, 45, 47, 48, 48, 48, 48, 50, 50, 51, 52, 49, 52, -16, -6, -4, -9, -11, -15, -13, -11, -21, -12, --11, -17, -18, -20, -11, -27, -27, -4, -14, -15, -17, -12, -11, -4, -15, -16, -13, -12, -10, 1, -17, -18, -14, -2, 1, --9, -6, -7, -1, -12, -21, -34, -14, -11, -33, -10, -19, -52, -57, -53, -16, -52, -48, -1, -21, -11, -12, -2, 1, 6, --33, -46, -37, -28, -10, 23, -19, -24, -7, 20, 19, -15, -7, 20, 36, 1, -19, -44, -5, -9, -55, -30, -28, -56, -48, --62, -28, -82, -93, 1, -37, -23, -20, -4, 7, 33, -26, -33, -16, 0, 6, 55, -33, -28, 12, 63, 70, 12, 33, -10, -5, -25, -57, -83, -8, -6, -15, 5, 5, 15, 15, 5, 1, -27, -75, -24, -36, -13, 12, 39, 56, 59, -69, -138, -117, --73, 13, 92, -18, -36, 39, 111, 85, -43, -22, 287, 171, 157, 123, 103, 60, 10, 2, 1, -2, -6, -6, 0, -1, 19, -53, 2, -80, -144, -155, -192, -169, -51, 84, 248, 394, 235, 56, -64, -65, -22, 77, 1, 107, 352, 341, 8, 52, -48, -37, -10, -6, -9, 0, -1, 2, 3, 2, 1, -1, -8, -21, 6, -25, -49, -43, 35, 80, 75, -42, -179, -290, -263, -62, 229, -106, -8, -44, -265, -276, -130, -77, 161, 352, 216, 45, -73, 15, 4, -1, 1, -2, -1, -1, 0, 1, 4, 11, 1, 28, -52, 55, -4, -43, -27, -10, 111, 307, 245, 51, -265, -102, 76, 246, 321, 292, 76, 85, -389, -340, -209, -251, -277, -40, 1, --1, 1, 1, 1, 1, 0, 0, -3, -8, -20, 24, 62, 63, 30, -3, -49, -93, -132, -127, -115, -46, -45, 240, 266, 136, --236, -411, -384, -345, 84, 367, 443, 371, 130, 66, -6, 2, -3, -2, -2, -1, 0, 2, -1, 15, 51, 119, 143, 126, 108, -85, 69, 53, 33, 9, -59, -99, -119, -150, -159, -121, -86, -61, -37, -71, 50, 45, 0, -8, -26, -14, -8, 2, 6, 6, -4, 3, -1, -4, -1, 9, 25, 9, -14, -27, -36, -48, -55, -58, -66, -75, -62, -52, -53, -40, -40, -62, -43, -28, 9, -38, -106, -118, -105, -100, -90, -79, -64, -50, -34, -25, -12, -15, -1, 3, 19, 26, 41, 36, 28, 21, 35, 43, 52, 70, -88, 106, 83, 59, 33, 4, -25, -50, -57, -69, -90, -100, 2, -7, 15, 14, 27, 31, 35, 42, 47, 57, 71, 80, 92, -104, 98, 91, 85, 77, 64, 67, 69, 67, 66, 65, 62, 64, 59, 58, 58, 57, 54, 46, 35, 25, 16, 10, 48, 40, -46, 47, 48, 50, 51, 53, 60, 64, 66, 70, 73, 78, 72, 74, 64, 68, 71, 75, 74, 76, 77, 78, 79, 79, 77, -74, 70, 66, 62, 61, 59, 57, 55, 51, 82, -27, -15, -15, -19, -21, -23, -24, -21, -19, -17, -18, -20, -27, -28, -14, --35, -37, -14, -25, -26, -30, -25, -24, -21, -33, -32, -25, -19, -18, -19, -25, -24, -16, -11, -11, -22, -15, -11, -10, -17, --26, -33, -26, -20, -15, -14, -23, -43, -70, -69, -19, -59, -54, -11, -33, -28, -36, -24, -28, -33, -76, -81, -54, -26, -11, --16, -29, -25, 1, 8, 1, -34, -15, 19, 23, -4, -23, -36, -18, -10, -7, -8, -4, -9, -11, -30, -4, -62, -83, -8, --45, -41, -52, -27, -27, -16, -86, -82, -33, 8, 13, -10, -33, -16, 43, 53, 50, -14, 27, 2, 5, -16, -37, -42, -5, -2, 2, 2, 3, 4, 9, 9, 6, 8, -35, -20, -46, -45, -46, -15, -19, -50, -196, -232, -138, -35, 25, -15, -36, -13, -83, 86, 39, -81, -23, 219, 106, 107, 60, 32, 8, -2, 0, -1, -2, -2, -5, -4, -4, 1, 13, 35, -21, -91, -116, --135, -94, 36, 208, 336, 367, 218, 66, 4, -16, 17, 112, 65, 157, 357, 290, 63, 86, 6, 7, 8, -4, -2, 3, 0, -1, 1, 2, 2, 2, 0, -9, -6, -5, -26, -50, 10, 34, 13, -93, -209, -277, -168, 26, 237, 97, -30, -100, -237, -200, --57, 6, 203, 345, 276, 50, -40, 22, -7, 2, -3, 0, -2, -1, -2, -1, 0, 3, 7, 14, 39, 63, 27, 11, 24, -84, 195, 332, 149, -58, -282, -6, 199, 246, 346, 239, -97, 56, -373, -732, -235, -71, -90, 7, -1, 4, 1, 2, 1, 2, -2, 2, 0, 3, -16, -20, 1, -7, -35, -52, -85, -115, -148, -134, -121, -8, 63, 299, 212, -135, -275, -296, -241, -179, 5, -257, 281, 192, 78, 14, -11, -1, -5, -3, -3, -3, -3, -2, -1, -2, 15, 76, 125, 130, 121, 101, 78, 46, 21, -3, --53, -94, -119, -134, -114, -59, -78, -116, -124, -147, 90, 97, 56, 43, 20, 21, 9, 11, 8, 8, 6, 7, 6, 6, 2, -7, 25, 32, 21, 4, -10, -29, -47, -67, -90, -113, -93, -82, -82, -74, -68, -52, -13, 30, 69, 96, -70, -83, -82, -78, --78, -64, -45, -29, -21, -16, -13, -16, -15, -16, -9, 0, 14, 21, 30, 40, 39, 39, 39, 49, 58, 66, 41, 16, -8, --21, -33, -48, -47, -53, -63, -71, -42, -57, -39, -36, -22, -17, -17, -12, -8, 2, 14, 23, 36, 49, 61, 65, 71, 76, -80, 82, 82, 83, 83, 83, 81, 85, 73, 67, 60, 51, 40, 26, 12, -2, -13, -26, 38, 29, 41, 43, 48, 41, 48, -56, 64, 68, 72, 76, 80, 83, 74, 73, 81, 78, 79, 78, 80, 81, 82, 83, 84, 86, 80, 75, 69, 64, 60, 57, -54, 50, 45, 41, 84, -31, -19, -21, -24, -27, -30, -29, -26, -16, -22, -24, -25, -37, -37, -20, -35, -35, -25, -31, -31, --33, -30, -30, -32, -38, -37, -28, -20, -20, -33, -27, -23, -11, -15, -17, -28, -19, -14, -19, -23, -27, -28, -31, -22, 2, --9, -15, -23, -48, -53, -22, -58, -53, -17, -34, -36, -45, -36, -46, -60, -89, -85, -54, -19, -11, -47, -33, -20, 14, -2, --13, -42, -18, 14, 3, -9, -22, -30, -20, -5, 5, -1, 4, 4, 10, 1, 7, -19, -47, -20, -41, -46, -63, -38, -48, --57, -104, -92, -36, 15, 14, -66, -28, -2, 73, 37, 25, -31, 16, 5, -8, -15, -24, -17, 4, 2, -2, 0, -1, -2, --3, 0, -2, 11, 2, -12, -39, -55, -74, -49, -76, -137, -241, -238, -123, -1, 18, -110, -51, 10, 120, 55, -5, -95, -22, -129, 67, 66, 25, 3, 0, -1, 0, 0, 0, 1, 1, 1, -1, -3, -3, 16, 13, -46, -78, -71, -16, 99, 277, 347, -279, 169, 74, 66, 48, 60, 109, 105, 175, 309, 191, 87, 78, 37, 24, -3, 1, 1, 0, 0, 0, 0, 0, 0, 0, -2, 1, -8, 3, 6, -21, -4, -17, -61, -149, -212, -206, -62, 81, 176, 78, -28, -114, -161, -102, 25, 76, 167, 287, 235, -25, -14, 5, -4, 1, 0, 0, 0, 0, 0, -1, -1, -2, 5, 0, 8, 44, 53, 71, 88, 179, 237, 247, 38, -124, --230, 49, 223, 192, 270, 131, -175, 8, -248, -733, -237, -7, -1, 2, 2, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, --25, -44, -63, -80, -86, -108, -126, -141, -116, -102, 26, 170, 226, 69, -279, -200, -115, -75, -27, -49, -13, 12, 14, 22, -16, -1, -3, 0, 0, 0, -1, -1, -2, -2, -3, -5, 32, 81, 108, 106, 94, 73, 31, 2, -24, -50, -86, -108, -109, -71, --22, -58, -109, -138, -108, 106, 120, 83, 54, 32, 9, 6, 1, 1, 0, 0, 1, 2, 4, 5, 5, 12, 37, 42, 34, -15, -7, -30, -47, -71, -105, -92, -89, -94, -88, -78, -39, -7, 42, 77, 110, -40, -47, -50, -46, -45, -30, -16, -1, 0, -2, 1, 0, -4, -7, -14, -16, -9, -5, 6, 20, 10, 7, 1, 0, -2, -5, -14, -24, -32, -32, -32, -38, -34, -37, --41, -45, -52, -66, -62, -55, -49, -45, -45, -41, -36, -29, -22, -15, -9, -1, 14, 25, 36, 48, 65, 68, 64, 63, 61, -60, 57, 57, 47, 40, 33, 22, 11, 0, -11, -20, -27, -38, 10, 6, 13, 15, 21, 11, 18, 24, 29, 32, 36, 40, -45, 49, 42, 39, 56, 50, 50, 47, 48, 48, 48, 48, 47, 48, 43, 39, 34, 30, 28, 25, 23, 19, 15, 12, 45, --27, -18, -22, -22, -24, -25, -24, -22, -9, -18, -21, -22, -33, -35, -24, -29, -27, -23, -26, -26, -27, -26, -28, -32, -32, --30, -25, -18, -19, -35, -24, -20, -7, -16, -18, -25, -18, -14, -23, -21, -21, -22, -28, -14, 7, -3, -4, -5, -14, -17, --9, -33, -40, -23, -22, -28, -38, -37, -48, -65, -72, -63, -42, -14, -14, -57, -31, -16, 17, -8, -18, -34, -17, 5, -16, --11, -18, -17, -4, 3, 0, 0, 2, 3, 6, 5, 5, 6, -3, -14, -27, -31, -48, -37, -51, -71, -82, -66, -31, 8, -0, -88, -27, -1, 71, 14, 4, -27, 5, 0, -26, -16, -12, 2, 3, -1, 0, 0, -1, -1, -3, -2, -3, -2, 4, -2, -16, -39, -66, -61, -98, -161, -194, -168, -87, 9, -6, -145, -60, 9, 112, 25, -26, -69, -16, 45, 41, 35, 6, -1, --1, 0, 1, 0, 0, 1, 1, 1, 1, 0, -1, -1, 13, -5, -32, -9, 42, 117, 241, 258, 155, 87, 50, 67, 78, -72, 52, 89, 136, 208, 86, 72, 43, 32, -2, 1, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 2, -1, -3, 11, --4, -30, -68, -116, -175, -177, -114, 13, 93, 97, 48, -18, -90, -77, -20, 74, 97, 105, 191, 133, -8, -3, 1, 0, 1, -0, 0, 0, 0, 0, 0, 0, -1, 0, 2, -6, 25, 63, 103, 133, 210, 206, 123, -33, -122, -127, 69, 173, 130, 143, -23, -157, -13, -154, -459, -163, 24, -2, 1, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 3, -3, -46, -76, -81, -86, --101, -100, -98, -76, -36, 69, 207, 100, -46, -222, -90, 7, 39, -5, -5, -201, -131, -29, 3, -2, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, -6, 3, 48, 79, 75, 67, 50, 20, -6, -32, -41, -67, -70, -69, -32, 2, 1, -12, -26, 34, -76, 99, 85, 39, 6, -1, 0, -3, -2, -2, -2, -2, -1, -1, 0, 4, 1, 27, 48, 50, 34, 17, -4, -14, -34, --66, -67, -70, -75, -67, -55, -20, -9, 24, 45, 66, -7, -8, -16, -8, -6, -1, 5, 8, 6, 6, 5, 5, 3, 3, -1, -5, -10, -16, -15, -6, -15, -17, -23, -28, -34, -40, -37, -36, -33, -26, -21, -19, -15, -16, -15, -12, -34, -40, -45, --39, -40, -35, -30, -24, -18, -17, -15, -13, -11, -10, -8, -3, 7, 19, 39, 41, 35, 33, 30, 26, 23, 20, 16, 12, -7, 2, -4, -10, -15, -18, -22, -27, -7, -8, -6, -5, -2, -9, -8, -8, -7, -4, -1, 2, 6, 9, 10, 10, 24, -19, 18, 15, 15, 14, 13, 12, 11, 10, 8, 6, 4, 2, 1, 0, -1, -2, -4, -6, 8, -20, -15, -19, -18, -19, --21, -19, -17, -5, -12, -14, -14, -20, -21, -18, -21, -20, -23, -18, -17, -18, -20, -21, -25, -22, -20, -19, -16, -17, -28, --19, -16, -6, -14, -16, -17, -15, -14, -22, -18, -15, -15, -10, -1, 3, 1, 1, 2, 1, 1, 2, -3, -9, -17, -13, --15, -24, -29, -39, -50, -43, -36, -28, -14, -17, -46, -27, -16, 8, -11, -17, -21, -14, -5, -26, -13, -8, 1, 4, 1, --1, 0, 0, 0, 0, 0, 0, 1, 4, 2, -6, -12, -24, -28, -40, -56, -45, -33, -23, -5, -16, -70, -25, -8, 42, --3, -7, -13, -4, -8, -35, -10, 1, 1, -2, -1, 0, 0, 0, 0, 0, 0, 0, -1, -2, 0, 1, -12, -38, -54, --86, -125, -109, -83, -51, -4, -26, -116, -56, -6, 67, 3, -25, -30, -12, -1, 20, 11, -2, 0, 0, 1, 0, 0, 0, -0, 0, 0, 0, 1, 1, 0, 0, 7, 10, 33, 69, 105, 151, 135, 58, 20, 18, 42, 76, 61, -6, 47, 72, 99, -18, 45, 27, 4, -5, 4, -2, 1, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 0, -15, -52, -88, -120, -138, --107, -38, 47, 80, 46, 20, -13, -54, -14, 27, 75, 78, 44, 88, 33, -13, 4, -1, 1, 0, 0, 0, 0, 0, 0, -0, 0, 1, -1, 1, -1, 17, 59, 96, 126, 154, 119, 30, -60, -88, -43, 56, 95, 67, 25, -48, -101, -17, -101, -201, --39, 21, -7, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 5, -15, -51, -50, -58, -67, -57, -47, -33, 29, -83, 139, -3, -87, -106, -33, 34, 92, -33, 72, -169, -74, 9, -2, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -7, 18, 51, 41, 34, 18, 3, -13, -35, -40, -52, -39, -37, -5, 28, 60, 80, 96, 129, 13, 48, 47, 0, -4, --1, -2, 0, -1, 0, 0, 0, 0, 0, -1, -1, -1, 4, 29, 41, 32, 26, 13, 7, -7, -28, -36, -39, -41, -36, --33, -23, -30, -20, -13, -6, 18, 21, 9, 6, 4, 3, 2, 0, 1, 0, 1, 0, 0, 0, 1, 2, 1, -8, -19, --21, -24, -25, -27, -31, -35, -40, -36, -34, -32, -24, -16, -8, -3, 1, 7, 14, -21, -22, -25, -17, -16, -10, -3, -1, -0, 0, 0, 0, 0, 0, -2, -5, -7, -6, 5, 5, 1, -1, -4, -7, -9, -12, -12, -12, -13, -14, -16, -19, -19, --19, -21, -21, -14, -13, -14, -16, -16, -17, -17, -17, -17, -16, -15, -14, -13, -12, -11, -11, -4, -5, -6, -8, -9, -10, --11, -12, -13, -14, -14, -14, -14, -14, -14, -13, -13, -13, -13, -13, -13, -9, -7, -8, -8, -9, -11, -4, -3, 0, -2, --2, -2, -2, -3, -2, -3, -3, -12, -8, -7, -7, -8, -9, -10, -8, -8, -8, -7, -8, -11, -8, -7, -4, -7, -7, --7, -7, -6, -10, -9, -2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, -1, -5, -8, -12, -16, -19, --15, -12, -11, -8, -10, -18, -12, -8, 0, -6, -7, -6, -6, -4, -16, -2, 2, 0, -1, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, 0, 2, 0, -6, -11, -15, -22, -13, -9, -10, -7, -11, -26, -12, -6, 11, -5, -4, -1, -4, -5, --18, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, -10, -24, -36, -47, -33, -22, -17, --8, -17, -43, -25, -8, 18, -3, -9, -3, -4, -6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 0, 0, -1, 16, 27, 39, 49, 48, 35, 12, 1, 5, 15, 34, 25, -15, 13, 19, 21, -2, 17, 12, -5, 2, --1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -14, -32, -46, -55, -52, -33, -5, 26, 33, 13, -3, -7, -19, 8, 23, 34, 30, 8, 15, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0, 8, 27, 41, 52, 50, 30, -5, -33, -35, -4, 21, 27, 19, -14, -37, -34, -9, -40, -46, 10, -3, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -13, -16, -19, -20, -16, -8, 0, 33, 44, 42, -19, -42, -23, --3, 20, 47, -18, 55, -31, 3, 2, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 17, 11, -8, 1, -4, -9, -17, -19, -21, -12, -7, 9, 29, 49, 62, 77, 76, -12, 9, 3, -3, 2, 0, 1, 0, 0, 0, -0, 0, 0, 0, 0, 0, 0, -1, 2, 17, 14, 14, 10, 7, 2, -5, -9, -10, -11, -11, -14, -16, -23, -24, -23, --21, 15, 19, 5, 0, 0, -1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 2, -3, -10, -10, -11, -11, -12, --14, -16, -15, -15, -15, -11, -6, -2, 2, 6, 10, 14, -7, -6, -5, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, -1, 1, 2, 1, -2, -6, -7, -7, -8, -9, -10, -11, -11, -10, -10, -9, -9, -10, -10, -10, -9, -9, -8, -7, -6, --8, -9, -10, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -9, -9, -8, -8, -9, -9, -9, -9, -10, -10, -10, --10, -9, -9, -8, -8, -8, -7, -7, -7, -10, -}; -#else const uint32_t defaultHRIR_rom_AlphaR16[470 * 43] = { 0x3f02f000,0x3ef2f800,0x3f03a400,0x3ec47000,0x3e94b000,0x3e107000,0x3ed4d000,0x3e95d000,0x3e17e000,0x3e107000,0x3e0f9000,0x3e1bc000,0x3e05c000,0x3e01c000,0x3e015000,0x3e91a800,0x3ec5e800,0x3dea0000,0x3e918800,0x3eb89000,0x3ef73800,0x3ee40800,0x3eed6000,0x3ef0e000,0x3ef3d000, 0x3ef74800,0x3efa8800,0x3eff6000,0x3f021800,0x3f04a800,0x3f06f400,0x3f090000,0x3f0c7000,0x3f0a0000,0x3f078400,0x3f024400,0x3eff6800,0x3f0e5c00,0x3f0a4800,0x3e8a4800,0x3ee48800,0x3eaee800,0x3eaa3800,0x3ebb5800,0x3eac3000,0x3ebef800,0x3eb29800,0x3e9b3000,0x3eaea000,0x3eac2800, @@ -19978,69 +10004,6 @@ const uint32_t defaultHRIR_rom_AlphaR16[470 * 43] = { 0xba000000,0xba100000,0xba200000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xb9400000,0xba100000,0xba100000,0xba000000,0xba000000,0xba100000,0xba100000,0xba100000,0xba100000,0xba200000,0xba200000,0xba200000, 0xba200000,0xba100000,0xba100000,0xba000000,0xba000000,0xba000000,0xb9e00000,0xb9e00000,0xb9e00000,0xba200000, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_E16_Q = 29; -const int32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470] = { -206109184, 168120064, 191836192, 182078752, 192106976, 197882288, 207667584, 212469392, 217470368, 208949424, 203938496, 198973968, 193378656, 188390048, 183902768, 179393808, 175609504, 172489072, 169782128, 162989616, 172482848, 153900912, 154645488, 189723344, 148310880, -147260160, 175093168, 177518016, 174857792, 169232592, 172577584, 175110624, 174396064, 150769184, 156768384, 187324416, 165548368, 208977632, 238512976, 244999424, 267489248, 291183104, 328354304, 349786944, 360435680, 332970464, 310346528, 289399904, 269192896, 251692384, -237131536, 221576976, 209321184, 200918752, 189855088, 180484592, 171830512, 161160240, 141841104, 134512256, 125414992, 119845664, 117368384, 120750992, 123921712, 123004512, 122238832, 125347576, 126782232, 137111680, 144494864, 153992368, 180505392, 204399584, 262655728, -298320256, 344245376, 406163808, 490018080, 537979392, 578338432, 507220192, 452954496, 404439840, 355135488, 316154528, 284176768, 251700608, 225152384, 207103936, 181217056, 166685616, 137923328, 121933232, 105643760, 93692192, 83219840, 76572280, 69140792, 76922240, -79131312, 84500904, 71196768, 72010016, 79883024, 92147624, 109890000, 127893352, 163771200, 220321024, 312036256, 367424160, 439088480, 554767616, 710491840, 828487040, 898985024, 734165248, 606421696, 507442848, 423498240, 356850464, 308319552, 258465792, 221124640, -196758640, 165635424, 143890848, 115598728, 96854216, 72097736, 59931184, 46227440, 39381848, 34168920, 40089264, 44927784, 47203808, 37241560, 34851976, 44969456, 56426528, 76613792, 100918192, 152480192, 399726368, 494178240, 612774720, 738867264, 913774016, -1015694784, 1084138496, 1103635072, 1159515776, 1164112256, 1008717568, 974320896, 875714176, 754657600, 617704576, 497989984, 418706048, 292982720, 229276752, 162655360, 123141104, 90558760, 70114368, 48819120, 41466720, 39266032, 50099264, 52187744, 50348008, 46237000, -51234056, 72631848, 96214440, 137178432, 187817600, 300016992, 462471488, 567334720, 733217280, 874097920, 1174631680, 1286952320, 1373828608, 1346466048, 1287138176, 1165757184, 991719488, 896359168, 796200640, 719947456, 590664768, 481113152, 399392480, 328406592, 287663456, -216625440, 154972224, 107064536, 76870360, 57428432, 46734544, 42127024, 52522400, 62614184, 79405976, 71736776, 80147888, 104968928, 118662160, 165216688, 242145088, 349083936, 503854432, 709262784, 1012107840, 1212962688, 1483765632, 1619158016, 1755042304, 1752943744, -1652902144, 1454505600, 1215569664, 985248512, 785121280, 623493696, 502121312, 409419296, 355543872, 298307392, 272979360, 232664576, 199639616, 163435072, 130697848, 92321872, 74772040, 93719208, 81362072, 95377064, 157825248, 86263896, 78689784, 107160072, 131705944, -174796752, 254502528, 335281472, 542202496, 771617280, 1030022272, 1281971200, 1635046528, 1613323904, 1644626688, 1726421632, 1666416896, 1520938368, 1267465600, 1076028544, 884427584, 696921856, 556420864, 434570976, 332454784, 292162560, 265444640, 233382608, 204264672, 170692496, -146950576, 114032160, 90188616, 87566040, 72851760, 93604624, 232943472, 104100736, 89749600, 102672592, 125068920, 164233728, 235126928, 354023264, 488680192, 683078400, 1052083200, 1286615040, 1385048448, 1409591296, 1367720960, 1298312064, 1113216384, 1033010112, 1011368128, -869295296, 728075584, 592695680, 459949664, 375870720, 322048352, 297008768, 279547872, 261622720, 220100848, 188427232, 156912768, 129120672, 108937760, 96758480, 98883608, 107011064, 153476224, 112355080, 111255184, 112587264, 147342896, 186114784, 244399488, 339314240, -528587008, 601502144, 793711808, 906564736, 1006623680, 1077107456, 1057611776, 964346624, 869017472, 771174336, 684539520, 581343552, 506561632, 450886240, 408277408, 373501344, 343111424, 349389824, 344447744, 277441472, 280565536, 227772256, 194191264, 163515680, 136016304, -119446536, 120703632, 126560952, 122274448, 130193664, 130656400, 127536288, 152266848, 192815808, 253773824, 350910080, 472321056, 547797888, 639467904, 721325376, 836666368, 815081024, 815604736, 833188416, 767886464, 714141376, 664641536, 620124416, 576242240, 530260992, -506178784, 486917408, 468211584, 426847104, 392531616, 353566336, 321788384, 279274720, 244087952, 212426640, 208305600, 172602656, 187151504, 164453904, 187227232, 159222960, 194007232, 178926720, 230566400, 274833792, 348249088, 387061440, 553421632, 483935552, 485644416, -510384992, 538348160, 570222592, 606724480, 649568896, 626935808, 614548352, 599337024, 584361216, 573207168, 564234560, 535950496, 506087872, 480232032, 453680864, 425747456, 415913120, 468902944, 340128224, 331994400, 310439520, 287833312, 267595344, 274276608, 287952992, -280450400, 292872288, 288485280, 273626656, 306225536, 334716032, 362626944, 392097184, 419460928, 449196288, 408816096, 429340096, 432539904, 444566880, 452610368, 467366752, 457587296, 453929920, 449801568, 446299520, 442683104, 441308224, 430540544, 422276832, 412714688, -407264384, 388588768, 425088608, 406717344, 439550560, 604455232, 371539840, 405388736, 532268160, 542215104, 527923904, 494523680, 527103296, 536172064, 518294976, 408239712, 383602304, 591872768, 456632128, 497591360, 267266, 213486, 180610, 210414, 224448, -191054, 271530, 265228, 186520, 204566, 171518, 117624, 111536, 130806, 206048, 218590, 242368, 245210, 260716, 283602, 315238, 332802, 330174, 344988, 239098, 217264, 197198, 265416, 286594, 311174, -266414, 249202, 233786, 204796, 215524, 388986, 243256, 393942, 246684, 239336, 210012, 156358, 338488, 364384, 163522, 253404, 188940, 201616, 101594, 122790, 289950, 295360, 377124, 360192, 422756, -515550, 635644, 723626, 716252, 691738, 397896, 273122, 220234, 386918, 486930, 544258, 433436, 324014, 253624, 182498, 264566, 943564, 502252, 462018, 546658, 390820, 442890, 319276, 793498, 725126, -137842, 358962, 269440, 897454, 527670, 513626, 825366, 470868, 559546, 467990, 621328, 859012, 1168948, 1413246, 1504126, 1483454, 711350, 354838, 316246, 712958, 928244, 1156904, 819880, 589838, 390698, -317974, 354374, 1873780, 531892, 1255298, 723388, 505732, 322758, 701476, 1138342, 1134664, 271232, 434984, 806966, 3305746, 2664378, 2302900, 2046412, 1191030, 1166408, 862000, 1091726, 1635750, 2266378, 2703584, -2794324, 3115780, 1820740, 986528, 618386, 1154338, 1810754, 2200840, 1559766, 1267176, 550668, 1028902, 719718, 4877388, 2063368, 9141834, 2330896, 1404556, 3314848, 9994588, 4589210, 2657046, 1654550, 3446654, 2423422, -3640548, 3406256, 2979336, 2004462, 831444, 723140, 693922, 682170, 894850, 1323852, 2359638, 2768186, 3135158, 1737916, 1204886, 942910, 314558, 404312, 2301478, 1930490, 2435888, 2316760, 3079952, 1443836, 3805966, -6705070, 10780826, 13954706, 2660552, 2400836, 8511080, 7115890, 3987882, 3501532, 1254856, 1444370, 1565692, 1000276, 851680, 738114, 803520, 942324, 816510, 665380, 725764, 888756, 739974, 649096, 793392, 904058, -695390, 497492, 836848, 991106, 1005186, 329920, 410306, 1415360, 3121858, 2924416, 3717840, 8247580, 5383982, 6276048, 3760510, 3642820, 2899882, 3787242, 2500622, 5394778, 3556984, 2891776, 1722514, 804330, 606258, -859606, 1201306, 1187192, 785872, 1005144, 907044, 1627682, 394236, 240650, 633430, 415080, 244090, 256424, 194250, 78010, 72954, 429066, 733310, 839192, 1188180, 1933018, 2952736, 3857424, 11329458, 13910518, -24760602, 23704384, 14811710, 6116310, 4053928, 4405154, 2394368, 2059856, 1807198, 1236324, 1183462, 773120, 782670, 747508, 723826, 922860, 757160, 944004, 527824, 549332, 577368, 543808, 355870, 280710, 129782, -147030, 263230, 318486, 440496, 1319762, 1097264, 2315108, 5749138, 8897220, 22214576, 30100104, 25984080, 16421484, 9582142, 7388242, 8597914, 7549396, 4000656, 2548390, 1636988, 1342566, 1000362, 865602, 641182, 589636, -619722, 568972, 492060, 432316, 286540, 212172, 372588, 172950, 201688, 404286, 211708, 235844, 382394, 873628, 1850956, 3397078, 9348070, 13422044, 13732732, 16788662, 14896624, 13846926, 12943808, 10790152, 10846622, -11975116, 10806688, 7942984, 4620840, 4233842, 4520146, 5486060, 5447602, 3867726, 3444998, 2779182, 1946892, 1545348, 979228, 351728, 433780, 354894, 309166, 318464, 657728, 1404404, 2146854, 3091710, 3814674, 5767036, -7528000, 8777386, 8321046, 8295558, 9926072, 11836506, 7439082, 8301212, 8233734, 8946652, 10928306, 9922590, 10835976, 13242654, 9893378, 7774002, 7242268, 5985236, 4925696, 4066144, 3231772, 2622794, 2141414, 1515900, 1025948, -807156, 648738, 468764, 679918, 866138, 1340016, 2022752, 2531922, 3087370, 4140136, 4323334, 4833078, 5661764, 6065440, 6854600, 7737254, 7505382, 5419186, 5395384, 5037642, 4786908, 4677048, 4684166, 4746616, 5049716, -4529476, 4458478, 4182916, 3985612, 3745316, 3667786, 3033548, 2516454, 2027760, 1642538, 1256188, 929242, 1110512, 1115666, 1286048, 1417194, 1745654, 2069652, 2433138, 2817534, 3229614, 3662330, 4202498, 4723504, 4756304, -4828838, 4887960, 5044636, 4042682, 4100126, 4014476, 4037286, 4005082, 4122866, 4193724, 4322194, 4170272, 4044308, 3966040, 3793754, 3666822, 3597426, 3329336, 3127602, 2949860, 2709340, 2551336, 2236852, 2491476, 2627670, -2889034, 2756774, 2909814, 3160450, 3259076, 3335142, 3450622, 3583716, 3731660, 3936224, 3881560, 3896218, 4126348, 4040170, 4776272, 12574, 7962, 8856, 11574, 14638, 25032, 14486, 10212, 4092, 12412, -16186, 21848, 15654, 17568, 27090, 28732, 26974, 20804, 12406, 9514, 8946, 9064, 9796, 12268, 16964, 14560, 4536, 9776, 8672, 9122, 5990, 4100, 7302, 4872, 7112, -16870, 8466, 9696, 13066, 37498, 59118, 103442, 64026, 39516, 8164, 24912, 31882, 62752, 29888, 62784, 145512, 180966, 169262, 109538, 55166, 35986, 33412, 25532, 18766, 25086, -47516, 43390, 12344, 26778, 28002, 42708, 38936, 30686, 39446, 10038, 6972, 49220, 11758, 4834, 28196, 57056, 120982, 227894, 182948, 117128, 46220, 57612, 98610, 217714, 112644, -144048, 327832, 329196, 296626, 179258, 65802, 47694, 61434, 36420, 25244, 41046, 104250, 76564, 94178, 73424, 138852, 352698, 339404, 231686, 167096, 34534, 10508, 114804, 9724, 68018, -38204, 259698, 461166, 840814, 589422, 385408, 138194, 95930, 112464, 483680, 130386, 475992, 1341340, 1593506, 1393660, 901800, 462330, 374256, 365658, 217956, 94764, 176822, 233718, 159764, 116648, -107620, 117288, 269102, 560042, 487744, 438210, 245106, 85018, 404308, 109658, 879030, 832442, 1719392, 1673588, 1449940, 574080, 246580, 353352, 183270, 658660, 1373800, 1193828, 1025466, 1630402, 1316286, -1001492, 967188, 1032290, 1242564, 1155152, 890890, 592992, 476454, 234168, 100668, 110570, 139416, 177496, 16046, 23638, 244602, 620576, 512974, 460354, 318696, 550448, 1173130, 509636, 495748, 597342, -1283514, 1744144, 1817878, 495736, 288540, 337402, 1570374, 1153584, 1465912, 1330824, 694698, 625402, 444270, 402738, 258518, 322680, 118862, 66756, 38142, 32612, 11584, 60428, 71688, 105424, 51568, -17352, 113232, 399810, 1536280, 1504100, 892274, 607144, 6187728, 11506240, 2922548, 884782, 2058466, 1637372, 1701042, 2105672, 1632514, 1690052, 1204318, 404220, 634892, 802344, 545194, 484548, 331466, 204236, -107074, 97070, 37786, 27940, 74192, 65826, 43218, 52470, 3042, 14344, 7008, 23438, 76448, 149416, 99912, 117256, 514604, 2728242, 2806944, 5878460, 2102208, 914458, 1178468, 1081506, 773910, -1031152, 509078, 593746, 370258, 153630, 273914, 351240, 282182, 215932, 214716, 175250, 212372, 222802, 194230, 159438, 117414, 23542, 1516, 7058, 2586, 6018, 10202, 1888, 3414, 63964, -94882, 128906, 1228174, 2397518, 1383266, 1274728, 846896, 665736, 269998, 161532, 365982, 439022, 678938, 826982, 896796, 723606, 505574, 370076, 138744, 46512, 72566, 166208, 276596, 372870, 407130, -351084, 286496, 124744, 39902, 5728, 9898, 18240, 20612, 32022, 32082, 50896, 20280, 40412, 203916, 948036, 440178, 500928, 578798, 543040, 486548, 410652, 436506, 524092, 476174, 488152, -551256, 499094, 416086, 276168, 166368, 67792, 27158, 30718, 55076, 108252, 125724, 101660, 68308, 69270, 67886, 65076, 44622, 71262, 97650, 145758, 172088, 171988, 231076, 287966, 314948, -358540, 324222, 330350, 281824, 213506, 146672, 101000, 96600, 112610, 95526, 89332, 101596, 57882, 49748, 69804, 60474, 63518, 77136, 73904, 83644, 103020, 114396, 136402, 164556, 131152, -135390, 186110, 160372, 167618, 199178, 209300, 230184, 290704, 300990, 362884, 414172, 347270, 227430, 220188, 189004, 162494, 129528, 103826, 86492, 91680, 89052, 91576, 90918, 86588, 81594, -84720, 84678, 91422, 100564, 114084, 128826, 145664, 144416, 143270, 154960, 172336, 198780, 232486, 224320, 229130, 243546, 253982, 278152, 305628, 271264, 238448, 232328, 211608, 120464, 116124, -109624, 100118, 96518, 91816, 88820, 84582, 85346, 85350, 88822, 92212, 97390, 101608, 105924, 109820, 113596, 118122, 122622, 131664, 130724, 133056, 136540, 137080, 141160, 156212, 150422, -150002, 147010, 147650, 145866, 151212, 135474, 130448, 130966, 127672, 150044, -}; -#else const uint32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470] = { 0x3ec48fa0,0x3ea054f0,0x3eb6f302,0x3eada4d2,0x3eb7351e,0x3ebcb71b,0x3ec60c18,0x3ecaa069,0x3ecf655a,0x3ec7450b,0x3ec27dac,0x3ebdc1a1,0x3eb86b96,0x3eb3a9aa,0x3eaf6223,0x3eab1551,0x3ea7796a,0x3ea47f97,0x3ea1eab7,0x3e9b7063,0x3ea47e12,0x3e92c577,0x3e937b3f,0x3eb4ef2d,0x3e8d70b6, 0x3e8c7030,0x3ea6fb5b,0x3ea94b5c,0x3ea6c1e4,0x3ea1648d,0x3ea49533,0x3ea6ff9e,0x3ea6512a,0x3e8fc8e2,0x3e958188,0x3eb2a580,0x3e9de115,0x3ec74bee,0x3ee376b5,0x3ee9a650,0x3eff18fe,0x3f0ad8d0,0x3f1c9250,0x3f26ca9a,0x3f2bde7f,0x3f1ec5cf,0x3f13fc19,0x3f09ff23,0x3f005c76,0x3ef00856, @@ -20100,68 +10063,6 @@ const uint32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470] = { 0x39561c00,0x39438b00,0x393c8300,0x39335400,0x392d7a00,0x39253300,0x3926b100,0x3926b300,0x392d7b00,0x39341a00,0x393e3700,0x39467400,0x394ee200,0x39567e00,0x395dde00,0x3966b500,0x396f7f00,0x39809400,0x397f5200,0x3981f000,0x39855700,0x3985de00,0x3989da00,0x39988d00,0x3992e580, 0x39927c80,0x398f9080,0x39903080,0x398e7280,0x3993ab00,0x39844c80,0x397ec800,0x397fcb00,0x39795c00,0x39928700, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470] = { -206128352, 182152384, 192350944, 168282528, 165563744, 187485760, 156466208, 150736768, 174374272, 175048048, 172493136, 169116592, 174792992, 177535520, 175115648, 147247616, 148037728, 189523808, 154650752, 153955408, 172592960, 163017504, 169754832, 172491440, 175609504, -179393808, 183906528, 188398144, 193378656, 198975056, 203956096, 208932816, 217478272, 212479760, 207633888, 197928912, 192060992, 245076096, 237265376, 209167392, 180870912, 154668416, 144999264, 137137200, 126273232, 124687720, 122656800, 123468488, 124295824, 120827176, -117041504, 119796976, 126067584, 134359840, 141160512, 161312448, 171415936, 180462944, 189888272, 200902112, 209354912, 221573840, 237161808, 251710176, 269192864, 289400160, 310378432, 332914240, 360379168, 349797536, 328461440, 291087456, 267655360, 297404288, 264353088, -204371120, 163997952, 127128600, 109615440, 91939512, 80331112, 72233632, 70725944, 84350384, 78648424, 76976496, 69349760, 76560040, 82367712, 93814664, 105849912, 121753608, 138633568, 166333360, 181310384, 207104608, 225117152, 251745312, 284160384, 316142208, -355141952, 404439040, 452861952, 507200608, 578600320, 537961088, 489810272, 406187904, 344399264, 372253280, 308057824, 221393504, 150575856, 102362808, 76494544, 57050968, 44799032, 34806624, 37048104, 47121240, 44608632, 40231680, 34047116, 39920144, 46443928, -60199856, 72279080, 96631664, 114265184, 145370128, 164841648, 197280352, 220866768, 258609536, 308249888, 356906368, 423481888, 507484064, 606399936, 734498176, 897616768, 829517056, 709441664, 556420992, 436480768, 623810816, 486340224, 400565856, 299029184, 189420192, -136412352, 96217752, 72738744, 51228880, 46188136, 50339416, 52215768, 49971120, 39824752, 40818544, 48855680, 69671600, 90990616, 121707128, 157415136, 234258352, 290252064, 420749344, 496965216, 618254400, 754238400, 875966976, 974487296, 1008266880, 1164100864, -1159669504, 1102591616, 1085713280, 1013506880, 918113024, 731963648, 742570880, 560226688, 462341920, 339907296, 248603312, 166952400, 118087792, 105815464, 79044456, 72631824, 78385784, 62397088, 52989264, 42075744, 47366416, 56566632, 78075384, 108271584, 153591312, -215751680, 289314240, 327391520, 400130560, 480698912, 591035456, 719399360, 796348672, 896360576, 991788736, 1165791872, 1287385216, 1345240576, 1375482880, 1285031680, 1178286592, 868637504, 1026530240, 698549440, 514502912, 339064064, 250493408, 175600784, 128371112, 106690728, -79105416, 86226280, 159617536, 96188088, 81177848, 93520872, 74433144, 94104040, 129578984, 163452624, 200297216, 231742528, 273720640, 297944896, 355769184, 409322656, 502137280, 623456384, 785127872, 985208704, 1215631616, 1454446848, 1653367808, 1751333376, 1756706688, -1617278208, 1488954112, 1204162816, 1057932224, 746736832, 546228736, 348133600, 242479808, 163856976, 124100496, 105130240, 89699720, 104048848, 229819552, 91023840, 74437512, 88347512, 90195536, 114181960, 148130144, 171596656, 203136416, 231091456, 266767904, 291462688, -332834560, 434309792, 556552896, 696823168, 884548416, 1076196096, 1267413120, 1520998656, 1666752640, 1725245184, 1645824640, 1611564800, 1638020096, 1271226752, 1048591680, 691262976, 503895168, 324293536, 238974752, 189905472, 142309056, 114721824, 114161032, 112459576, 151271232, -107770512, 98425912, 96319880, 107356264, 130807136, 154731072, 184381520, 226170720, 258880976, 280958848, 296696512, 322040032, 375936896, 459896128, 592610432, 728096704, 869436608, 1011262976, 1032990336, 1113469184, 1297538944, 1368354688, 1409420928, 1385334272, 1286523776, -786960384, 606822528, 496098304, 352722144, 255684928, 198413664, 151798208, 129385152, 128773760, 130105408, 118645056, 126465664, 121092688, 119518416, 136201904, 163083456, 189322672, 228552544, 275836192, 283123616, 339294944, 350637760, 342715904, 373676384, 408158784, -451008992, 506425152, 581316608, 684496192, 771180992, 869042688, 964212096, 1057772416, 1077721600, 1005589568, 908965504, 641905152, 546072960, 479308288, 387576000, 341689600, 269615456, 230463760, 178570976, 194537632, 159201952, 187096544, 163875904, 186949920, 171652944, -207692384, 213874768, 249586576, 277610592, 322849792, 351194720, 393544032, 426866304, 468186656, 486961440, 506174976, 530187872, 576259264, 620124416, 664586304, 714140864, 767872576, 833267456, 815437632, 814990208, 836912320, 720678400, 484890016, 487157600, 544466304, -386384672, 362585888, 334775424, 305954720, 272607328, 288666176, 293725920, 279703872, 287797120, 274695744, 269107328, 288776960, 310626240, 332651488, 339874144, 467618528, 418781120, 425573152, 453462016, 480306336, 505995392, 536020576, 564254912, 573175168, 584326592, -599365504, 614491008, 626916352, 649499264, 606757376, 570175616, 538457088, 510412896, 408895104, 446780480, 420139456, 455192224, 583051776, 385782304, 407894752, 518266048, 536080768, 527538080, 494605696, 527654176, 542258112, 532377472, 405097024, 370817184, 608365696, -439696160, 406397120, 423051552, 388374752, 407580800, 412670272, 422282688, 430541856, 441308224, 442682112, 446298272, 449781600, 453929920, 457584320, 467371136, 452557952, 444602240, 432503520, 429468032, 497591360, 267266, 210068, 180600, 213720, 244090, -389528, 215824, 204416, 233140, 248648, 266112, 311512, 285478, 265672, 197404, 217264, 240472, 344498, 329230, 332076, 315532, 283602, 260562, 245210, 242368, 218590, 206048, 130806, 111574, 117630, -171518, 204566, 186886, 265228, 271404, 191054, 223978, 239472, 245560, 393968, 500940, 940958, 264932, 183426, 253874, 323906, 434678, 546484, 489412, 386870, 220234, 273704, 395620, 691980, 719368, -723728, 634692, 515796, 422756, 360562, 377178, 295014, 289972, 122898, 101594, 202254, 188940, 253760, 163204, 364384, 339652, 156812, 210128, 390800, 546588, 461298, 529818, 1884134, 349898, 319898, -389194, 588856, 815202, 1154394, 924302, 714256, 318334, 353416, 720216, 1482640, 1501678, 1414720, 1168806, 858754, 622692, 467990, 559546, 470868, 827590, 511354, 526756, 894744, 269440, 359728, 137642, -724540, 790620, 318498, 443670, 504910, 721302, 1249180, 2079428, 4816616, 725480, 1015896, 552750, 1268952, 1564988, 2202564, 1808418, 1152614, 615076, 1006590, 1780116, 3132800, 2806070, 2707702, 2265352, 1638738, -1090640, 861790, 1166108, 1191824, 2034122, 2308750, 2674242, 3298990, 808152, 434014, 268290, 1137854, 1142796, 699500, 323910, 1407602, 2338332, 9168664, 6677630, 3787938, 1457578, 3053288, 2312660, 2440328, 1919574, -2309898, 401422, 312600, 953512, 1201354, 1725038, 3166174, 2771694, 2354144, 1332096, 897610, 681626, 694262, 722388, 832296, 1992846, 2993170, 3418914, 3651512, 2429262, 3425232, 1649906, 2662294, 4588742, 9999410, -3308572, 2678340, 13922908, 10873826, 8223618, 3732632, 2978106, 3009616, 1439604, 401860, 327742, 1009754, 987586, 838434, 496954, 699120, 914032, 790962, 643566, 753268, 884690, 724516, 664622, 819704, 941528, -805522, 736330, 853262, 1003140, 1568246, 1449040, 1248920, 3466024, 4000512, 7130458, 8496084, 2395484, 3792816, 6295862, 5434476, 3704970, 2888044, 1959684, 1173924, 856056, 735924, 407656, 72058, 78278, 194830, -257594, 245510, 423058, 626526, 230380, 400508, 1627138, 901984, 1006368, 787768, 1187374, 1199044, 859018, 607388, 804886, 1719992, 2891378, 3556458, 5366728, 2511274, 3802598, 2899244, 3627472, 25120990, 13514858, -11676680, 9234356, 5655614, 2275916, 1134540, 1247522, 436810, 329020, 251146, 145988, 129074, 289524, 354408, 548912, 577202, 549598, 536476, 943066, 752846, 922374, 724924, 748710, 783030, 770284, 1184780, -1239498, 1808262, 2062372, 2397512, 4395182, 4058218, 6104062, 14883780, 23501882, 25908030, 30063392, 22571688, 17374216, 13454604, 13582748, 9269728, 3362702, 1831004, 862154, 389412, 233774, 209432, 420470, 204444, 173824, -377568, 215082, 299974, 435976, 487880, 570190, 623782, 588990, 641944, 862616, 1001646, 1342128, 1637854, 2548390, 4005070, 7515854, 8626528, 7394090, 9574448, 16428088, 12961394, 13775124, 14344812, 11868326, 10156264, -8557212, 8256300, 8954982, 7439398, 5768342, 3813870, 3090112, 2142148, 1411170, 661910, 316202, 310410, 359106, 434186, 353476, 974994, 1545038, 1945606, 2779182, 3445160, 3865238, 5452030, 5492132, 4513054, 4233476, -4621070, 7918000, 10825144, 11992072, 10843026, 10785774, 8217790, 8360738, 7587168, 7402010, 7558166, 6728508, 6067196, 5612286, 4847622, 4343858, 4138596, 3091120, 2536150, 2020520, 1339812, 867640, 688342, 463824, 643848, -807894, 1025134, 1515900, 2140308, 2622794, 3231772, 4066144, 4925696, 5985236, 7238916, 7774424, 9893378, 13232688, 10832346, 9917764, 10928306, 8950016, 5038732, 5372780, 5356036, 5025042, 4911168, 4861548, 4769376, 4731398, -4203170, 3663386, 3233542, 2814452, 2433138, 2071270, 1747576, 1417104, 1283476, 1118030, 1116364, 928730, 1256188, 1642538, 2025580, 2515912, 3033634, 3664890, 3742086, 3985322, 4182916, 4456344, 4531282, 5051566, 4750352, -4685662, 4677048, 4786908, 4012860, 4106442, 4060090, 4049024, 4116280, 3896594, 3874776, 3936128, 3731660, 3583352, 3445884, 3330918, 3260942, 3159440, 2911964, 2758394, 2889628, 2623670, 2491570, 2239538, 2551336, 2709662, -2947174, 3127602, 3329336, 3597426, 3666822, 3794276, 3966040, 4044308, 4166678, 4322194, 4193724, 4122866, 4005564, 4037286, 4776272, 12574, 11574, 8856, 8016, 8466, 16870, 7112, 4860, 7168, 4164, -5990, 9006, 8672, 9776, 4440, 14482, 17070, 12268, 9828, 9064, 8946, 9514, 12178, 20682, 26974, 28732, 27188, 17634, 15654, 21848, 16186, 12510, 4046, 10212, 14528, -24962, 14638, 37236, 13066, 9670, 11758, 49052, 6966, 9984, 39414, 30510, 38954, 42632, 28168, 26736, 12312, 43688, 47770, 24562, 19290, 26128, 33412, 35986, 55348, 109538, -169262, 180966, 145512, 62784, 29888, 62752, 31534, 24912, 8034, 39642, 64092, 103442, 58828, 56302, 28082, 4834, 9770, 115388, 10630, 34764, 166610, 233100, 339290, 353698, 139122, -73666, 93672, 76392, 104218, 41486, 24350, 36382, 60722, 47540, 65660, 178514, 296626, 329196, 328686, 144472, 112644, 217370, 98740, 58092, 46506, 117128, 182526, 227894, 120848, 257524, -39618, 67418, 109882, 399494, 84622, 245256, 439840, 490060, 556694, 267102, 117570, 107092, 118128, 159130, 232258, 175706, 99054, 217374, 368112, 372338, 462908, 902982, 1393660, 1593506, 1335966, -474310, 130484, 483680, 113076, 95428, 137488, 385290, 590356, 841548, 461166, 1714892, 834574, 879886, 550566, 323816, 458998, 510218, 621198, 243960, 22996, 15684, 177124, 137466, 112824, 100176, -234170, 474898, 592408, 894678, 1151806, 1245858, 1030062, 972634, 999742, 1318350, 1619118, 1028984, 1197246, 1376064, 658850, 183270, 350556, 247154, 573822, 1449404, 1670198, 497674, 501710, 1188438, 599780, -874554, 1522072, 1512724, 404842, 110710, 17112, 52010, 105424, 70874, 59818, 11550, 30944, 38674, 63928, 125932, 320838, 258504, 402828, 445810, 625402, 694698, 1321934, 1471694, 1156334, 1570548, -337402, 288540, 494540, 1823728, 1752074, 1282592, 598614, 2934558, 11481266, 6191586, 2706882, 508786, 116708, 100142, 149934, 77034, 23274, 6998, 13992, 3196, 52754, 42398, 64868, 72950, 28086, -38010, 96592, 107142, 204278, 332808, 484548, 545194, 798794, 638282, 406660, 1201560, 1698958, 1626790, 2091692, 1703574, 1635660, 2059296, 880728, 2122996, 5851924, 2807572, 2384552, 1227512, 129530, 95240, -66280, 3448, 1952, 10522, 6118, 2572, 7272, 1646, 23522, 116180, 159840, 198390, 222592, 213372, 174908, 215732, 215932, 282744, 350676, 274540, 153572, 370436, 594940, 509308, 1022438, -777282, 1081368, 1177796, 909198, 843324, 1269858, 1386722, 944092, 208076, 40188, 19574, 49384, 33222, 31772, 20596, 18080, 10010, 5598, 41284, 125306, 281170, 358216, 407638, 370640, 276146, -166208, 72566, 46486, 138744, 369104, 506328, 723972, 899038, 826942, 678938, 438352, 367092, 162176, 270220, 665432, 577018, 503116, 433674, 357494, 318506, 291704, 231960, 173218, 171862, 147504, -97650, 72070, 43470, 65152, 67886, 67676, 66328, 103180, 123348, 106890, 55484, 30496, 27218, 67792, 166368, 275314, 416322, 500120, 551256, 487990, 476174, 524092, 436506, 410652, 485920, -543836, 281420, 334078, 325006, 339514, 408624, 360116, 301824, 289242, 230758, 209818, 199178, 167616, 160240, 186028, 135390, 131712, 165870, 136084, 114520, 102844, 83622, 73904, 77136, 63518, -60474, 69822, 49748, 57882, 101596, 89332, 95608, 112610, 96600, 101000, 146672, 212808, 189178, 220678, 229280, 210462, 230460, 236384, 270938, 305156, 278644, 254364, 243546, 229444, 224320, -232556, 198306, 172218, 154478, 143270, 144858, 145664, 128826, 114084, 100564, 91422, 84678, 84720, 81594, 86588, 90888, 91576, 89052, 91680, 86214, 103826, 129528, 162384, 109624, 116584, -120546, 127320, 131738, 130566, 135474, 151212, 146400, 147650, 147010, 150002, 150422, 156626, 140990, 137786, 136914, 133056, 130930, 131664, 122622, 118122, 113596, 109820, 105924, 101608, 97390, -92212, 88822, 85704, 85346, 84582, 88820, 91816, 96518, 100118, 150044, -}; -#else const uint32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470] = { 0x3ec4944e,0x3eadb6cc,0x3eb770ae,0x3ea07c9a,0x3e9de4d6,0x3eb2cce4,0x3e9537c2,0x3e8fc0f8,0x3ea64bd8,0x3ea6f057,0x3ea48095,0x3ea1483b,0x3ea6b212,0x3ea94fa2,0x3ea700d8,0x3e8c6d20,0x3e8d2e06,0x3eb4be76,0x3e937c88,0x3e92d2c5,0x3ea498f4,0x3e9b7732,0x3ea1e40d,0x3ea4802b,0x3ea7796a, 0x3eab1551,0x3eaf630e,0x3eb3aba4,0x3eb86b96,0x3ebdc1e5,0x3ec281f8,0x3ec740fd,0x3ecf6748,0x3ecaa2f1,0x3ec603de,0x3ebcc27d,0x3eb729e4,0x3ee9b908,0x3ee2461e,0x3ec77a42,0x3eac7df0,0x3e9380d8,0x3e8a4836,0x3e82c8c3,0x3e70d8da,0x3e6dd2ad,0x3e69f304,0x3e6b7f59,0x3e6d1352,0x3e6675a5, @@ -20221,39 +10122,6 @@ const uint32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470] = { 0x396b7100,0x3978ac00,0x3980a680,0x397f0300,0x39844c80,0x3993ab00,0x398ef800,0x39903080,0x398f9080,0x39927c80,0x3992e580,0x3998f480,0x3989af80,0x39868e80,0x3985b480,0x3981f000,0x397fb900,0x39809400,0x396f7f00,0x3966b500,0x395dde00,0x39567e00,0x394ee200,0x39467400,0x393e3700, 0x39341a00,0x392d7b00,0x39276400,0x3926b100,0x39253300,0x392d7a00,0x39335400,0x393c8300,0x39438b00,0x39928700, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_ITD_W_Q = 9; -const int16_t defaultHRIR_rom_ITD_W[658] = { -0,3,-241,-59,43,264,-385,-146,-25,229,-104,-377,-447,-148,-97,-353,-525,190,-187,-126,-262,1,264,130,196, --189,518,351,95,149,439,365,102,-210,40,143,376,-273,-40,67,242,42,-13,132,540,-305,-399,-994,-1460,-1512, --1937,-1212,-900,-655,-1250,-1456,-1068,-728,-240,72,650,148,-3,-154,-655,-89,239,742,1068,1463,1244,669,919,1216,1906, -1485,1470,1003,420,291,-538,-161,69,12,24,-729,-1504,-1951,-2532,-3125,-4173,-3841,-4892,-5047,-5608,-4594,-4564,-3442,-3117,-2498, --1723,-1067,131,3,-119,1066,1747,2500,3098,3446,4551,4607,5588,5028,4884,3877,4208,3107,2532,1914,1537,702,35,-86,37, -20,-477,-1435,-2703,-4032,-5239,-6150,-6921,-7094,-6942,-6448,-6109,-6490,-5123,-3909,-2843,-1163,-414,128,-3,-162,432,1113,2838,3953, -5105,6521,6076,6491,6970,7110,6859,6084,5280,4019,2773,1385,476,20,-273,100,-190,-1873,-3360,-4821,-6002,-7505,-8865,-9526,-10677, --12778,-12208,-11263,-8949,-8044,-6954,-4975,-3757,-1678,-255,-5,383,1568,3905,4997,6821,8115,8868,11363,12083,12729,10651,9618,9051,7359, -6123,4562,3639,1554,592,-251,51,-197,-1609,-3014,-4314,-6027,-7640,-8690,-9835,-10912,-12473,-12449,-11697,-9199,-8372,-6681,-5016,-3169,-1735, --50,-26,238,1423,3281,5141,6552,8358,9401,11619,12485,12597,10772,9906,8498,7817,6040,4538,2920,1504,493,-293,103,-197,-1881, --3512,-5838,-7440,-9293,-10864,-12086,-13162,-15029,-14190,-13020,-10074,-9548,-7664,-6101,-3872,-1841,-223,8,228,2008,3740,6095,7888,9410,10003, -13120,14149,14997,13408,11991,11113,9008,7649,5545,3850,1635,385,-196,137,-309,-1782,-3936,-5869,-8017,-9866,-11026,-12933,-14562,-16766,-15540, --13984,-10830,-9881,-8313,-6117,-3846,-1799,-343,-1,394,1706,3959,6129,8151,10156,10675,13965,15636,16655,14511,12765,11020,9774,8137,5827, -3835,1775,415,-251,88,-255,-1523,-3623,-5668,-8125,-9373,-11454,-13228,-15423,-17401,-15804,-14442,-11008,-10513,-8335,-6479,-3622,-1750,-26,5, -73,1895,3494,6499,8277,10303,11125,14332,15817,17580,15192,13620,11132,9450,7981,5627,3846,1427,505,-266,105,-254,-1631,-3591,-5248, --7341,-9494,-10685,-12716,-13983,-16313,-14184,-12898,-11027,-9940,-8037,-5929,-3782,-1407,-409,8,394,1290,3753,5981,8061,10114,10931,13218,13956, -16285,14147,12538,11152,9193,7566,5226,3461,1395,614,-347,76,-288,-1424,-2887,-5273,-6548,-8473,-10526,-11669,-13064,-13462,-13062,-12108,-10548, --9014,-7122,-5365,-2982,-1073,-150,-31,408,1100,3121,5240,7185,9004,10771,11769,13322,13352,12962,11935,10128,8562,6504,4968,3212,1503, -317,-115,121,-403,-790,-2571,-3866,-5714,-7365,-8276,-9436,-10101,-10817,-10093,-9572,-8363,-7458,-5847,-4405,-2236,-892,-177,44,-150,896, -2338,4185,5829,7485,8188,9773,9940,10898,10117,9251,8594,7188,5968,4054,2674,661,272,-136,45,55,-1005,-1873,-3194,-4182,-5314, --6423,-6963,-7338,-7964,-7510,-6892,-6814,-5386,-4438,-3191,-1948,-818,82,-5,35,838,1908,3279,4447,5383,6883,6807,7573,7927,7337, -7004,6307,5358,4093,3075,1878,992,143,-301,2,41,-448,-1216,-1667,-2433,-3075,-4020,-3810,-4738,-4441,-4966,-4133,-4362,-3278,-2820, --2257,-1267,-819,164,-1,-219,802,1285,2213,2814,3275,4330,4172,4938,4458,4739,3797,4077,3059,2483,1729,1231,403,-44,-76, --6,89,324,-578,-638,-1089,-1513,-1634,-1972,-1363,-1420,-1227,-1653,-1642,-1222,-973,-481,-311,429,108,4,-70,-415,302,513, -980,1228,1661,1630,1242,1410,1362,1975,1596,1515,1051,583,569,-293,-82,80,2,-183,54,225,412,-319,-104,42,259, -7,-59,-81,108,30,-248,-378,361,46,5,-211,-2,192,-12,-45,-376,371,243,-37,-100,78,62,-7,-256,-24, -110,342,-378,-220,-65,164,23,-1, -}; -#else const uint32_t defaultHRIR_rom_ITD_W[658] = { 0x00000000,0x3bc00000,0xbef10000,0xbdec0000,0x3dac0000,0x3f040000,0xbf408000,0xbe920000,0xbd480000,0x3ee50000,0xbe500000,0xbf3c8000,0xbf5f8000,0xbe940000,0xbe420000,0xbf308000,0xbf834000,0x3ebe0000,0xbebb0000,0xbe7c0000,0xbf030000,0x3b000000,0x3f040000,0x3e820000,0x3ec40000, 0xbebd0000,0x3f818000,0x3f2f8000,0x3e3e0000,0x3e950000,0x3f5b8000,0x3f368000,0x3e4c0000,0xbed20000,0x3da00000,0x3e8f0000,0x3f3c0000,0xbf088000,0xbda00000,0x3e060000,0x3ef20000,0x3da80000,0xbcd00000,0x3e840000,0x3f870000,0xbf188000,0xbf478000,0xbff88000,0xc0368000,0xc03d0000, @@ -20283,7 +10151,6 @@ const uint32_t defaultHRIR_rom_ITD_W[658] = { 0x3c600000,0xbdec0000,0xbe220000,0x3e580000,0x3d700000,0xbef80000,0xbf3d0000,0x3f348000,0x3db80000,0x3c200000,0xbed30000,0xbb800000,0x3ec00000,0xbcc00000,0xbdb40000,0xbf3c0000,0x3f398000,0x3ef30000,0xbd940000,0xbe480000,0x3e1c0000,0x3df80000,0xbc600000,0xbf000000,0xbd400000, 0x3e5c0000,0x3f2b0000,0xbf3d0000,0xbedc0000,0xbe020000,0x3ea40000,0x3d380000,0xbb000000, }; -#endif const int16_t defaultHRIR_rom_ITD_model_configuration[4] = { 18, /* elevDim3 */ 41, /* azimDim3 */ @@ -20302,54 +10169,22 @@ const int16_t defaultHRIR_rom_ITD_azimBsLen[4] = { const int16_t defaultHRIR_rom_ITD_azimBsStart[4] = { 0, 11, 32, 63, }; -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_ITD_azimBsShape_Q = 15; -const int16_t defaultHRIR_rom_ITD_azimBsShape[84] = { -32767,23888,16777,11239,7078,4096,2097,885,262,33,0,0,8413,14221,17768,19399,19456,18285,16228,13631,10838,8192,5972,4194,2810, -1769,1024,524,221,66,8,0,0,461,1726,3613,5942,8533,11207,13782,16078,17916,19115,19543,19268,18402,17061,15360,13413,11335, -9241,7244,5461,3981,2796,1873,1180,683,350,147,44,5,0,0,5,44,147,350,683,1180,1873,2796,3981,5461,7247, -9262,11409,13588,15701,17651,19339,20666,21534,21845, -}; -#else const uint32_t defaultHRIR_rom_ITD_azimBsShape[84] = { 0x3f7ffe00,0x3f3aa000,0x3f031200,0x3eaf9c00,0x3e5d3000,0x3e000000,0x3d831000,0x3cdd4000,0x3c030000,0x3a840000,0x00000000,0x00000000,0x3e837400,0x3ede3400,0x3f0ad000,0x3f178e00,0x3f180000,0x3f0eda00,0x3efd9000,0x3ed4fc00,0x3ea95800,0x3e800000,0x3e3aa000,0x3e031000,0x3dafa000, 0x3d5d2000,0x3d000000,0x3c830000,0x3bdd0000,0x3b040000,0x39800000,0x00000000,0x00000000,0x3c668000,0x3d57c000,0x3de1d000,0x3e39b000,0x3e855400,0x3eaf1c00,0x3ed75800,0x3efb3800,0x3f0bf800,0x3f155600,0x3f18ae00,0x3f168800,0x3f0fc400,0x3f054a00,0x3ef00000,0x3ed19400,0x3eb11c00, 0x3e906400,0x3e626000,0x3e2aa800,0x3df8d000,0x3daec000,0x3d6a2000,0x3d138000,0x3caac000,0x3c2f0000,0x3b930000,0x3ab00000,0x39200000,0x00000000,0x00000000,0x39200000,0x3ab00000,0x3b930000,0x3c2f0000,0x3caac000,0x3d138000,0x3d6a2000,0x3daec000,0x3df8d000,0x3e2aa800,0x3e627800, 0x3e90b800,0x3eb24400,0x3ed45000,0x3ef55400,0x3f09e600,0x3f171600,0x3f217400,0x3f283c00,0x3f2aaa00, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_ITD_azimKSeq_Q = 7; -const int16_t defaultHRIR_rom_ITD_azimKSeq[19] = { -0, 1280, 2560, 3840, 5120, 6400, 7680, 8960, 10240, 11520, 12800, 14080, 15360, 16640, 17920, 19200, 20480, 21760, 23040, -}; -#else const float defaultHRIR_rom_ITD_azimKSeq[19] = { 0.000000f, 10.000000f, 20.000000f, 30.000000f, 40.000000f, 50.000000f, 60.000000f, 70.000000f, 80.000000f, 90.000000f, 100.000000f, 110.000000f, 120.000000f, 130.000000f, 140.000000f, 150.000000f, 160.000000f, 170.000000f, 180.000000f, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_ITD_elevBsShape_Q = 15; -const int16_t defaultHRIR_rom_ITD_elevBsShape[28] = { -32767,9709,1214,0,0,18508,16991,8192,2427,303,0,0,4349,12945,19115,18002,12035,5461,1618,202,0,0,202,1618,5461, -12136,18811,21845, -}; -#else const uint32_t defaultHRIR_rom_ITD_elevBsShape[28] = { 0x3f7ffe00,0x3e97b400,0x3d17c000,0x00000000,0x00000000,0x3f109800,0x3f04be00,0x3e800000,0x3d97b000,0x3c178000,0x00000000,0x00000000,0x3e07e800,0x3eca4400,0x3f155600,0x3f0ca400,0x3ebc0c00,0x3e2aa800,0x3d4a4000,0x3bca0000,0x00000000,0x00000000,0x3bca0000,0x3d4a4000,0x3e2aa800, 0x3ebda000,0x3f12f600,0x3f2aaa00, }; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -const int16_t defaultHRIR_rom_ITD_elevKSeq_Q = 8; -const int16_t defaultHRIR_rom_ITD_elevKSeq[16] = { --23040, -19968, -16896, -13824, -10752, -7680, -4608, -1536, 1536, 4608, 7680, 10752, 13824, 16896, 19968, 23040, -}; -#else const float defaultHRIR_rom_ITD_elevKSeq[16] = { -90.000000f, -78.000000f, -66.000000f, -54.000000f, -42.000000f, -30.000000f, -18.000000f, -6.000000f, 6.000000f, 18.000000f, 30.000000f, 42.000000f, 54.000000f, 66.000000f, 78.000000f, 90.000000f, }; -#endif #undef WMC_TOOL_SKIP diff --git a/lib_rend/ivas_rom_TdBinauralRenderer.h b/lib_rend/ivas_rom_TdBinauralRenderer.h index ee019422c6..cc44aa9643 100644 --- a/lib_rend/ivas_rom_TdBinauralRenderer.h +++ b/lib_rend/ivas_rom_TdBinauralRenderer.h @@ -46,36 +46,6 @@ * TD Binaural rendering related ROM tables *------------------------------------------------------------------------*/ /* TD renderer default HRIR model */ -#ifdef FIX_1123_TDREN_16BIT_ROM -extern const int16_t defaultHRIR_rom_latency_s_Q; -extern const int32_t defaultHRIR_rom_latency_s; -extern const int16_t defaultHRIR_rom_model_configuration[6]; -extern const int16_t defaultHRIR_rom_azimDim3[15]; -extern const int16_t defaultHRIR_rom_azim_start_idx[15]; -extern const int16_t defaultHRIR_rom_azimSegSamples[1]; -extern const int16_t defaultHRIR_rom_azimShapeIdx[15]; -extern const int16_t defaultHRIR_rom_azimShapeSampFactor[15]; -extern const int16_t defaultHRIR_rom_elevKSeq_Q; -extern const int16_t defaultHRIR_rom_elevKSeq[13]; -extern const int16_t defaultHRIR_rom_Alpha48_Q; -extern const int16_t defaultHRIR_rom_AlphaL48[470 * 128]; -extern const int16_t defaultHRIR_rom_AlphaR48[470 * 128]; -extern const int16_t defaultHRIR_rom_Alpha32_Q; -extern const int16_t defaultHRIR_rom_AlphaL32[470 * 86]; -extern const int16_t defaultHRIR_rom_AlphaR32[470 * 86]; -extern const int16_t defaultHRIR_rom_Alpha16_Q; -extern const int16_t defaultHRIR_rom_AlphaL16[470 * 43]; -extern const int16_t defaultHRIR_rom_AlphaR16[470 * 43]; -extern const int16_t defaultHRIR_rom_E48_Q; -extern const int32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * 470]; -extern const int32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * 470]; -extern const int16_t defaultHRIR_rom_E32_Q; -extern const int32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; -extern const int32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; -extern const int16_t defaultHRIR_rom_E16_Q; -extern const int32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; -extern const int32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; -#else extern const float defaultHRIR_rom_latency_s; extern const int16_t defaultHRIR_rom_model_configuration[6]; extern const int16_t defaultHRIR_rom_azimDim3[15]; @@ -96,30 +66,6 @@ extern const uint32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * 470]; extern const uint32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * 470]; extern const uint32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * 470]; extern const uint32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * 470]; -#endif -#ifdef FIX_1123_TDREN_16BIT_ROM -extern const int16_t defaultHRIR_rom_elevBsLen[4]; -extern const int16_t defaultHRIR_rom_elevBsStart[4]; -extern const int16_t defaultHRIR_rom_elevBsShape_Q; -extern const int16_t defaultHRIR_rom_elevBsShape[36]; -extern const int16_t defaultHRIR_rom_azimBsShape_Q; -extern const int16_t defaultHRIR_rom_azimBsShape[21]; -extern const int16_t defaultHRIR_rom_ITD_W_Q; -extern const int16_t defaultHRIR_rom_ITD_W[658]; -extern const int16_t defaultHRIR_rom_ITD_azimBsShape_Q; -extern const int16_t defaultHRIR_rom_ITD_azimBsShape[84]; -extern const int16_t defaultHRIR_rom_ITD_azimKSeq_Q; -extern const int16_t defaultHRIR_rom_ITD_azimKSeq[19]; -extern const int16_t defaultHRIR_rom_ITD_elevBsShape_Q; -extern const int16_t defaultHRIR_rom_ITD_elevBsShape[28]; -extern const int16_t defaultHRIR_rom_ITD_elevKSeq_Q; -extern const int16_t defaultHRIR_rom_ITD_elevKSeq[16]; -extern const int16_t defaultHRIR_rom_ITD_model_configuration[4]; -extern const int16_t defaultHRIR_rom_ITD_elevBsLen[4]; -extern const int16_t defaultHRIR_rom_ITD_elevBsStart[4]; -extern const int16_t defaultHRIR_rom_ITD_azimBsLen[4]; -extern const int16_t defaultHRIR_rom_ITD_azimBsStart[4]; -#else extern const int16_t defaultHRIR_rom_elevBsLen[4]; extern const int16_t defaultHRIR_rom_elevBsStart[4]; extern const uint32_t defaultHRIR_rom_elevBsShape[36]; @@ -135,4 +81,3 @@ extern const int16_t defaultHRIR_rom_ITD_elevBsStart[4]; extern const int16_t defaultHRIR_rom_ITD_azimBsLen[4]; extern const int16_t defaultHRIR_rom_ITD_azimBsStart[4]; #endif -#endif -- GitLab From de96ddbfe693bd293d1d8dbb12d6f8255d7f2970 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:33:48 +0200 Subject: [PATCH 03/11] [strip] FIX_1123_FASTCONV_16BIT_ROM --- lib_com/ivas_prot.h | 2 - lib_dec/ivas_binRenderer_internal.c | 270 --------------------------- lib_rend/ivas_rom_binauralRenderer.h | 51 ----- lib_rend/ivas_stat_rend.h | 2 - lib_util/hrtf_file_reader.c | 184 ------------------ 5 files changed, 509 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index dc5ef18862..23d2cb14e2 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5131,10 +5131,8 @@ ivas_error ivas_allocate_binaural_hrtf( const AUDIO_CONFIG input_config, /* i : input audio configuration */ const BINAURAL_INPUT_AUDIO_CONFIG bin_input_config, /* i : binaural input audio config */ const RENDERER_TYPE renderer_type /* i : renderer type */ -#ifndef FIX_1123_FASTCONV_16BIT_ROM , const int16_t allocate_init_flag /* i : Memory allocation flag */ -#endif ); #ifdef DEBUGGING diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 50d7214713..4e1a9b0d88 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -491,9 +491,7 @@ void ivas_init_binaural_hrtf( HrtfFastConv->rightHRIRImag_FOA = NULL; HrtfFastConv->FASTCONV_FOA_latency_s = 0x00; -#ifndef FIX_1123_FASTCONV_16BIT_ROM HrtfFastConv->allocate_init_flag = 0x00; -#endif #ifdef FIX_1123_FASTCONV_16BIT_FMT HrtfFastConv->ntaps_hrir = BINAURAL_NTAPS; HrtfFastConv->ntaps_hrir_foa = BINAURAL_NTAPS_SBA; @@ -523,10 +521,8 @@ static ivas_error ivas_alloc_pppMem( const int16_t dim1, const int16_t dim2, const int16_t dim3 -#ifndef FIX_1123_FASTCONV_16BIT_ROM , const int16_t allocate_init_flag -#endif ) { int16_t i, j; @@ -543,10 +539,8 @@ static ivas_error ivas_alloc_pppMem( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HRTF memory" ); } -#ifndef FIX_1123_FASTCONV_16BIT_ROM if ( allocate_init_flag == 0 ) { -#endif for ( j = 0; j < dim2; j++ ) { if ( ( localMem[i][j] = (float *) malloc( dim3 * sizeof( float ) ) ) == NULL ) @@ -554,9 +548,7 @@ static ivas_error ivas_alloc_pppMem( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HRTF memory" ); } } -#ifndef FIX_1123_FASTCONV_16BIT_ROM } -#endif } *pppMem = localMem; @@ -576,10 +568,8 @@ ivas_error ivas_allocate_binaural_hrtf( const AUDIO_CONFIG input_config, /* i : input audio configuration */ const BINAURAL_INPUT_AUDIO_CONFIG bin_input_config, /* i : binaural input audio config */ const RENDERER_TYPE renderer_type /* i : renderer type */ -#ifndef FIX_1123_FASTCONV_16BIT_ROM , const int16_t allocate_init_flag /* i : Memory allocation flag */ -#endif ) { if ( input_config == IVAS_AUDIO_CONFIG_HOA3 || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA3 ) @@ -590,24 +580,6 @@ ivas_error ivas_allocate_binaural_hrtf( } else { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); - } -#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); @@ -624,7 +596,6 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } -#endif } } @@ -636,24 +607,6 @@ ivas_error ivas_allocate_binaural_hrtf( } else { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2 ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); - } -#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); @@ -670,7 +623,6 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } -#endif } } @@ -682,24 +634,6 @@ ivas_error ivas_allocate_binaural_hrtf( } else { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); - } -#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); @@ -716,7 +650,6 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } -#endif } } @@ -728,24 +661,6 @@ ivas_error ivas_allocate_binaural_hrtf( { if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); - } -#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); @@ -762,7 +677,6 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } -#endif } } @@ -774,24 +688,6 @@ ivas_error ivas_allocate_binaural_hrtf( { if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRImag" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRReal" ); - } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir ) ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); - } -#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); @@ -808,7 +704,6 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } -#endif } } @@ -828,18 +723,9 @@ static ivas_error ivas_binaural_hrtf_open( const RENDERER_TYPE renderer_type /* i : renderer type */ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - int16_t i, j, k; - float scaleFactor, scaleFactorSBA; -#else int16_t i, j; -#endif ivas_error error; -#ifdef FIX_1123_FASTCONV_16BIT_ROM - scaleFactor = 1.f; - scaleFactorSBA = 1.f; -#endif if ( hHrtfFastConv != NULL && *hHrtfFastConv != NULL ) { @@ -860,75 +746,28 @@ static ivas_error ivas_binaural_hrtf_open( if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - HrtfFastConv->FASTCONV_HRIR_latency_s = FASTCONV_HRIR_latency_s * powf( 2.f, -1.f * FASTCONV_FOA_latency_s_factorQ ); -#else HrtfFastConv->FASTCONV_HRIR_latency_s = FASTCONV_HRIR_latency_s; -#endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - HrtfFastConv->FASTCONV_HOA2_latency_s = FASTCONV_HOA2_latency_s * powf( 2.f, -1.f * FASTCONV_HOA2_latency_s_factorQ ); -#else HrtfFastConv->FASTCONV_HOA2_latency_s = FASTCONV_HOA2_latency_s; -#endif } if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - HrtfFastConv->FASTCONV_HOA3_latency_s = FASTCONV_HOA3_latency_s * powf( 2.f, -1.f * FASTCONV_HOA3_latency_s_factorQ ); -#else HrtfFastConv->FASTCONV_HOA3_latency_s = FASTCONV_HOA3_latency_s; -#endif } if ( input_config == IVAS_AUDIO_CONFIG_FOA ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - HrtfFastConv->FASTCONV_FOA_latency_s = FASTCONV_FOA_latency_s * powf( 2.f, -1.f * FASTCONV_HRIR_latency_s_factorQ ); -#else HrtfFastConv->FASTCONV_FOA_latency_s = FASTCONV_FOA_latency_s; -#endif } if ( input_config == IVAS_AUDIO_CONFIG_BINAURAL || renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - HrtfFastConv->FASTCONV_BRIR_latency_s = FASTCONV_BRIR_latency_s * powf( 2.f, -1.f * FASTCONV_BRIR_latency_s_factorQ ); -#else HrtfFastConv->FASTCONV_BRIR_latency_s = FASTCONV_BRIR_latency_s; -#endif } -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( renderer_type == RENDERER_BINAURAL_FASTCONV ) - { - scaleFactor = powf( 2.f, -1.f * FASTCONV_HRIR_factorQ ); - } - else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) - { - scaleFactor = powf( 2.f, -1.f * FASTCONV_BRIR_factorQ ); - } - if ( input_config == IVAS_AUDIO_CONFIG_HOA3 ) - { - scaleFactorSBA = powf( 2.f, -1.f * FASTCONV_HRIR_HOA3_factorQ ); - } - else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) - { - scaleFactorSBA = powf( 2.f, -1.f * FASTCONV_HRIR_HOA2_factorQ ); - } - else if ( input_config == IVAS_AUDIO_CONFIG_FOA ) - { - scaleFactorSBA = powf( 2.f, -1.f * FASTCONV_HRIR_FOA_factorQ ); - } -#else HrtfFastConv->allocate_init_flag = 1; -#endif -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( HrtfFastConv, input_config, BINAURAL_INPUT_AUDIO_CONFIG_INVALID, renderer_type ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_allocate_binaural_hrtf( HrtfFastConv, input_config, BINAURAL_INPUT_AUDIO_CONFIG_INVALID, renderer_type, HrtfFastConv->allocate_init_flag ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -939,40 +778,20 @@ static ivas_error ivas_binaural_hrtf_open( { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - for ( k = 0; k < HrtfFastConv->ntaps_hrir; k++ ) - { - HrtfFastConv->leftHRIRReal[i][j][k] = leftHRIRReal[i][j][k] * scaleFactor; - HrtfFastConv->leftHRIRImag[i][j][k] = leftHRIRImag[i][j][k] * scaleFactor; - HrtfFastConv->rightHRIRReal[i][j][k] = rightHRIRReal[i][j][k] * scaleFactor; - HrtfFastConv->rightHRIRImag[i][j][k] = rightHRIRImag[i][j][k] * scaleFactor; - } -#else HrtfFastConv->leftHRIRReal[i][j] = leftHRIRReal[i][j]; HrtfFastConv->leftHRIRImag[i][j] = leftHRIRImag[i][j]; HrtfFastConv->rightHRIRReal[i][j] = rightHRIRReal[i][j]; HrtfFastConv->rightHRIRImag[i][j] = rightHRIRImag[i][j]; -#endif } } else if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - for ( k = 0; k < HrtfFastConv->ntaps_brir; k++ ) - { - HrtfFastConv->leftBRIRReal[i][j][k] = leftBRIRReal[i][j][k] * scaleFactor; - HrtfFastConv->leftBRIRImag[i][j][k] = leftBRIRImag[i][j][k] * scaleFactor; - HrtfFastConv->rightBRIRReal[i][j][k] = rightBRIRReal[i][j][k] * scaleFactor; - HrtfFastConv->rightBRIRImag[i][j][k] = rightBRIRImag[i][j][k] * scaleFactor; - } -#else HrtfFastConv->leftBRIRReal[i][j] = leftBRIRReal[i][j]; HrtfFastConv->leftBRIRImag[i][j] = leftBRIRImag[i][j]; HrtfFastConv->rightBRIRReal[i][j] = rightBRIRReal[i][j]; HrtfFastConv->rightBRIRImag[i][j] = rightBRIRImag[i][j]; -#endif } } @@ -980,88 +799,36 @@ static ivas_error ivas_binaural_hrtf_open( { for ( j = 0; j < HOA3_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - for ( k = 0; k < HrtfFastConv->ntaps_hrir_hoa3; k++ ) - { - HrtfFastConv->leftHRIRReal_HOA3[i][j][k] = leftHRIRReal_HOA3[i][j][k] * scaleFactorSBA; - HrtfFastConv->leftHRIRImag_HOA3[i][j][k] = leftHRIRImag_HOA3[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRReal_HOA3[i][j][k] = rightHRIRReal_HOA3[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRImag_HOA3[i][j][k] = rightHRIRImag_HOA3[i][j][k] * scaleFactorSBA; - } -#else HrtfFastConv->leftHRIRReal_HOA3[i][j] = leftHRIRReal_HOA3[i][j]; HrtfFastConv->leftHRIRImag_HOA3[i][j] = leftHRIRImag_HOA3[i][j]; HrtfFastConv->rightHRIRReal_HOA3[i][j] = rightHRIRReal_HOA3[i][j]; HrtfFastConv->rightHRIRImag_HOA3[i][j] = rightHRIRImag_HOA3[i][j]; -#endif } } -#ifdef FIX_1123_FASTCONV_16BIT_ROM - else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) -#else if ( input_config == IVAS_AUDIO_CONFIG_HOA2 ) -#endif { for ( j = 0; j < HOA2_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - for ( k = 0; k < HrtfFastConv->ntaps_hrir_hoa2; k++ ) - { - HrtfFastConv->leftHRIRReal_HOA2[i][j][k] = leftHRIRReal_HOA2[i][j][k] * scaleFactorSBA; - HrtfFastConv->leftHRIRImag_HOA2[i][j][k] = leftHRIRImag_HOA2[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRReal_HOA2[i][j][k] = rightHRIRReal_HOA2[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRImag_HOA2[i][j][k] = rightHRIRImag_HOA2[i][j][k] * scaleFactorSBA; - } -#else HrtfFastConv->leftHRIRReal_HOA2[i][j] = leftHRIRReal_HOA2[i][j]; HrtfFastConv->leftHRIRImag_HOA2[i][j] = leftHRIRImag_HOA2[i][j]; HrtfFastConv->rightHRIRReal_HOA2[i][j] = rightHRIRReal_HOA2[i][j]; HrtfFastConv->rightHRIRImag_HOA2[i][j] = rightHRIRImag_HOA2[i][j]; -#endif } } -#ifdef FIX_1123_FASTCONV_16BIT_ROM - else if ( input_config == IVAS_AUDIO_CONFIG_FOA ) -#else if ( input_config == IVAS_AUDIO_CONFIG_FOA ) -#endif { for ( j = 0; j < FOA_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - for ( k = 0; k < HrtfFastConv->ntaps_hrir_foa; k++ ) - { - HrtfFastConv->leftHRIRReal_FOA[i][j][k] = leftHRIRReal_FOA[i][j][k] * scaleFactorSBA; - HrtfFastConv->leftHRIRImag_FOA[i][j][k] = leftHRIRImag_FOA[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRReal_FOA[i][j][k] = rightHRIRReal_FOA[i][j][k] * scaleFactorSBA; - HrtfFastConv->rightHRIRImag_FOA[i][j][k] = rightHRIRImag_FOA[i][j][k] * scaleFactorSBA; - } -#else HrtfFastConv->leftHRIRReal_FOA[i][j] = leftHRIRReal_FOA[i][j]; HrtfFastConv->leftHRIRImag_FOA[i][j] = leftHRIRImag_FOA[i][j]; HrtfFastConv->rightHRIRReal_FOA[i][j] = rightHRIRReal_FOA[i][j]; HrtfFastConv->rightHRIRImag_FOA[i][j] = rightHRIRImag_FOA[i][j]; -#endif } } } -#ifdef FIX_1123_FASTCONV_16BIT_ROM - scaleFactor = powf( 2.f, -1.f * fastconvReverberationTimes_factorQ ); - for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) - { - HrtfFastConv->fastconvReverberationTimes[i] = fastconvReverberationTimes[i] * scaleFactor; - } - - scaleFactor = powf( 2.f, -1.f * fastconvReverberationEneCorrections_factorQ ); - for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) - { - HrtfFastConv->fastconvReverberationEneCorrections[i] = fastconvReverberationEneCorrections[i] * scaleFactor; - } -#else mvr2r( fastconvReverberationTimes, HrtfFastConv->fastconvReverberationTimes, CLDFB_NO_CHANNELS_MAX ); mvr2r( fastconvReverberationEneCorrections, HrtfFastConv->fastconvReverberationEneCorrections, CLDFB_NO_CHANNELS_MAX ); -#endif *hHrtfFastConv = HrtfFastConv; @@ -1646,10 +1413,8 @@ void ivas_binRenderer_close( static void ivas_free_pppHrtfMem( float ****ppppHRIR, const int16_t dim -#ifndef FIX_1123_FASTCONV_16BIT_ROM , const int16_t alloc_init -#endif ) { int16_t i, j; @@ -1658,18 +1423,14 @@ static void ivas_free_pppHrtfMem( { for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { -#ifndef FIX_1123_FASTCONV_16BIT_ROM if ( alloc_init == 0 ) { -#endif for ( j = 0; j < dim; j++ ) { free( ( *ppppHRIR )[i][j] ); ( *ppppHRIR )[i][j] = NULL; } -#ifndef FIX_1123_FASTCONV_16BIT_ROM } -#endif free( ( *ppppHRIR )[i] ); ( *ppppHRIR )[i] = NULL; } @@ -1691,45 +1452,15 @@ void ivas_binaural_hrtf_close( HRTFS_FASTCONV_HANDLE *hHrtfFastConv /* i : fastconv HRTF handle */ ) { -#ifndef FIX_1123_FASTCONV_16BIT_ROM int16_t allocate_init_flag; -#endif if ( hHrtfFastConv == NULL || *hHrtfFastConv == NULL ) { return; } -#ifndef FIX_1123_FASTCONV_16BIT_ROM allocate_init_flag = ( *hHrtfFastConv )->allocate_init_flag; -#endif -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRReal, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRImag, HRTF_LS_CHANNELS ); - - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftBRIRReal, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftBRIRImag, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightBRIRReal, HRTF_LS_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightBRIRImag, HRTF_LS_CHANNELS ); - - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRReal_HOA3, HOA3_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag_HOA3, HOA3_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal_HOA3, HOA3_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRImag_HOA3, HOA3_CHANNELS ); - - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRReal_HOA2, HOA2_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag_HOA2, HOA2_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal_HOA2, HOA2_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRImag_HOA2, HOA2_CHANNELS ); - - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRReal_FOA, FOA_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag_FOA, FOA_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal_FOA, FOA_CHANNELS ); - ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRImag_FOA, FOA_CHANNELS ); -#else ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRReal, HRTF_LS_CHANNELS, allocate_init_flag ); ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag, HRTF_LS_CHANNELS, allocate_init_flag ); ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal, HRTF_LS_CHANNELS, allocate_init_flag ); @@ -1754,7 +1485,6 @@ void ivas_binaural_hrtf_close( ivas_free_pppHrtfMem( &( *hHrtfFastConv )->leftHRIRImag_FOA, FOA_CHANNELS, allocate_init_flag ); ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRReal_FOA, FOA_CHANNELS, allocate_init_flag ); ivas_free_pppHrtfMem( &( *hHrtfFastConv )->rightHRIRImag_FOA, FOA_CHANNELS, allocate_init_flag ); -#endif return; } diff --git a/lib_rend/ivas_rom_binauralRenderer.h b/lib_rend/ivas_rom_binauralRenderer.h index 2b548bf9dc..d7eae54003 100644 --- a/lib_rend/ivas_rom_binauralRenderer.h +++ b/lib_rend/ivas_rom_binauralRenderer.h @@ -43,56 +43,6 @@ *------------------------------------------------------------------------*/ /* Binaural rendering data set based on HRIRs */ -#ifdef FIX_1123_FASTCONV_16BIT_ROM -extern const int16_t FASTCONV_HOA3_latency_s_factorQ; -extern const int32_t FASTCONV_HOA3_latency_s; -extern const int16_t FASTCONV_HRIR_HOA3_factorQ; -extern const int16_t leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRReal_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRImag_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; - -extern const int16_t FASTCONV_HOA2_latency_s_factorQ; -extern const int32_t FASTCONV_HOA2_latency_s; -extern const int16_t FASTCONV_HRIR_HOA2_factorQ; -extern const int16_t leftHRIRReal_HOA2[BINAURAL_CONVBANDS][HOA2_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t leftHRIRImag_HOA2[BINAURAL_CONVBANDS][HOA2_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRReal_HOA2[BINAURAL_CONVBANDS][HOA2_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRImag_HOA2[BINAURAL_CONVBANDS][HOA2_CHANNELS][BINAURAL_NTAPS_SBA]; - -extern const int16_t FASTCONV_FOA_latency_s_factorQ; -extern const int32_t FASTCONV_FOA_latency_s; -extern const int16_t FASTCONV_HRIR_FOA_factorQ; -extern const int16_t leftHRIRReal_FOA[BINAURAL_CONVBANDS][FOA_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t leftHRIRImag_FOA[BINAURAL_CONVBANDS][FOA_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRReal_FOA[BINAURAL_CONVBANDS][FOA_CHANNELS][BINAURAL_NTAPS_SBA]; -extern const int16_t rightHRIRImag_FOA[BINAURAL_CONVBANDS][FOA_CHANNELS][BINAURAL_NTAPS_SBA]; - -extern const int16_t FASTCONV_HRIR_latency_s_factorQ; -extern const int32_t FASTCONV_HRIR_latency_s; -extern const int16_t FASTCONV_HRIR_factorQ; -extern const int16_t leftHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; -extern const int16_t leftHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; -extern const int16_t rightHRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; -extern const int16_t rightHRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS]; - - -/* Binaural rendering data set based on BRIRs */ -extern const int16_t FASTCONV_BRIR_latency_s_factorQ; -extern const int32_t FASTCONV_BRIR_latency_s; -extern const int16_t FASTCONV_BRIR_factorQ; -extern const int16_t leftBRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; -extern const int16_t leftBRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; -extern const int16_t rightBRIRReal[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; -extern const int16_t rightBRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_MAX]; - -/* Reverberation parameters based on BRIRs for fastconv */ -extern const int16_t fastconvReverberationTimes_factorQ; -extern const int16_t fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; -extern const int16_t fastconvReverberationEneCorrections_factorQ; -extern const int16_t fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; - -#else extern const float FASTCONV_HRIR_latency_s; extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][HOA3_CHANNELS][BINAURAL_NTAPS_SBA]; @@ -128,7 +78,6 @@ extern float rightBRIRImag[BINAURAL_CONVBANDS][HRTF_LS_CHANNELS][BINAURAL_NTAPS_ extern float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; extern float fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; -#endif #ifdef FIX_1123_PARAMBIN_16BIT_ROM /* Binaural rendering data set based on BRIRs, to be used in a combined manner diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index 202bcfecf9..e09cff13ce 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -1286,9 +1286,7 @@ typedef struct ivas_hrtfs_fastconv_struct float ***rightHRIRImag_FOA; float FASTCONV_FOA_latency_s; -#ifndef FIX_1123_FASTCONV_16BIT_ROM int16_t allocate_init_flag; /*Memory allocation flag 0: if the hrtf pointers are allocated at application level , 1: of allocated at ivas_binaural_hrtf_open() */ -#endif #ifdef FIX_1123_FASTCONV_16BIT_FMT uint16_t ntaps_hrir; uint16_t ntaps_hrir_hoa3; diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index b63e9d26b7..97e14ed576 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -1890,7 +1890,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } -#ifndef FIX_1123_FASTCONV_16BIT_ROM ( *hHRTF )->allocate_init_flag = 0; if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) @@ -1911,7 +1910,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "renderer type not compliant" ); } -#endif hrtf_data_rptr = hrtf_data; /* HRIR */ @@ -1947,12 +1945,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2094,12 +2086,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2241,12 +2227,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2389,12 +2369,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2537,12 +2511,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif /* BRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2834,7 +2802,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( ( *hHRTF )->allocate_init_flag = 0; -#ifndef FIX_1123_FASTCONV_16BIT_ROM if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) { if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) @@ -2853,7 +2820,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "renderer type not compliant" ); } -#endif hrtf_data_rptr = hrtf_data; @@ -2875,73 +2841,43 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ( *hHRTF )->ntaps_hrir = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRReal[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRReal[i][j], hrtf_data_rptr, BINAURAL_NTAPS * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRImag[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRImag[i][j], hrtf_data_rptr, BINAURAL_NTAPS * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRReal[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRReal[i][j], hrtf_data_rptr, BINAURAL_NTAPS * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRImag[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRImag[i][j], hrtf_data_rptr, BINAURAL_NTAPS * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS * sizeof( float ); -#endif } } } @@ -2963,73 +2899,43 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ( *hHRTF )->ntaps_hrir_hoa3 = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRReal_HOA3[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRReal_HOA3[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRImag_HOA3[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRImag_HOA3[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRReal_HOA3[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRReal_HOA3[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA3_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRImag_HOA3[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa3 * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRImag_HOA3[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } } @@ -3051,73 +2957,43 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ( *hHRTF )->ntaps_hrir_hoa2 = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA2_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRReal_HOA2[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRReal_HOA2[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA2_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRImag_HOA2[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRImag_HOA2[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA2_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRReal_HOA2[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRReal_HOA2[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HOA2_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRImag_HOA2[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_hoa2 * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRImag_HOA2[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } } @@ -3139,73 +3015,43 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ( *hHRTF )->ntaps_hrir_foa = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRReal_FOA[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_foa * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_foa * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRReal_FOA[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftHRIRImag_FOA[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_foa * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_foa * sizeof( float ); -#else memcpy( ( *hHRTF )->leftHRIRImag_FOA[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRReal_FOA[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_foa * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_foa * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRReal_FOA[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < FOA_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightHRIRImag_FOA[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_hrir_foa * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_hrir_foa * sizeof( float ); -#else memcpy( ( *hHRTF )->rightHRIRImag_FOA[i][j], hrtf_data_rptr, BINAURAL_NTAPS_SBA * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_SBA * sizeof( float ); -#endif } } } @@ -3227,73 +3073,43 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - ( *hHRTF )->ntaps_brir = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_MAX != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_ROM - if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, IVAS_AUDIO_CONFIG_INVALID, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) - { - return error; - } -#endif for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftBRIRReal[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_brir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_brir * sizeof( float ); -#else memcpy( ( *hHRTF )->leftBRIRReal[i][j], hrtf_data_rptr, BINAURAL_NTAPS_MAX * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_MAX * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->leftBRIRImag[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_brir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_brir * sizeof( float ); -#else memcpy( ( *hHRTF )->leftBRIRImag[i][j], hrtf_data_rptr, BINAURAL_NTAPS_MAX * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_MAX * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightBRIRReal[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_brir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_brir * sizeof( float ); -#else memcpy( ( *hHRTF )->rightBRIRReal[i][j], hrtf_data_rptr, BINAURAL_NTAPS_MAX * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_MAX * sizeof( float ); -#endif } } for ( i = 0; i < BINAURAL_CONVBANDS; i++ ) { for ( j = 0; j < HRTF_LS_CHANNELS; j++ ) { -#ifdef FIX_1123_FASTCONV_16BIT_ROM - memcpy( ( *hHRTF )->rightBRIRImag[i][j], hrtf_data_rptr, ( *hHRTF )->ntaps_brir * sizeof( float ) ); - hrtf_data_rptr += ( *hHRTF )->ntaps_brir * sizeof( float ); -#else memcpy( ( *hHRTF )->rightBRIRImag[i][j], hrtf_data_rptr, BINAURAL_NTAPS_MAX * sizeof( float ) ); hrtf_data_rptr += BINAURAL_NTAPS_MAX * sizeof( float ); -#endif } } -- GitLab From da3a7c85b37721df81baa6926ea8d13e5fab95f1 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:34:29 +0200 Subject: [PATCH 04/11] [strip] FIX_1123_PARAMBIN_16BIT_ROM --- lib_rend/ivas_dirac_dec_binaural_functions.c | 29 -------------------- lib_rend/ivas_rom_binauralRenderer.h | 16 ----------- 2 files changed, 45 deletions(-) diff --git a/lib_rend/ivas_dirac_dec_binaural_functions.c b/lib_rend/ivas_dirac_dec_binaural_functions.c index 75816d6519..46976ff52b 100644 --- a/lib_rend/ivas_dirac_dec_binaural_functions.c +++ b/lib_rend/ivas_dirac_dec_binaural_functions.c @@ -384,11 +384,7 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( HRTFS_PARAMBIN_HANDLE *hHrtfParambin /* i/o: HRTF structure for rendering */ ) { -#ifdef FIX_1123_PARAMBIN_16BIT_ROM - int16_t i, j, k; -#else int16_t i, j; -#endif if ( hHrtfParambin != NULL && *hHrtfParambin != NULL ) { @@ -399,14 +395,6 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( { /* Initialise tables from ROM */ HRTFS_PARAMBIN *hrtfParambin; -#ifdef FIX_1123_PARAMBIN_16BIT_ROM - float shCoef_scale, rt_scale, rene_scale, early_scale; - - shCoef_scale = powf( 2.f, -1.f * hrtfShCoeffs_factorQ ); - rt_scale = powf( 2.f, -1.f * parametricReverberationTimes_factorQ ); - rene_scale = powf( 2.f, -1.f * parametricReverberationEneCorrections_factorQ ); - early_scale = powf( 2.f, -1.f * parametricEarlyPartEneCorrection_factorQ ); -#endif if ( ( hrtfParambin = (HRTFS_PARAMBIN *) malloc( sizeof( HRTFS_PARAMBIN ) ) ) == NULL ) { @@ -417,31 +405,14 @@ ivas_error ivas_dirac_dec_binaural_copy_hrtfs( { for ( j = 0; j < HRTF_SH_CHANNELS; j++ ) { -#ifdef FIX_1123_PARAMBIN_16BIT_ROM - for ( k = 0; k < HRTF_NUM_BINS; k++ ) - { - hrtfParambin->hrtfShCoeffsRe[i][j][k] = hrtfShCoeffsRe[i][j][k] * shCoef_scale; - hrtfParambin->hrtfShCoeffsIm[i][j][k] = hrtfShCoeffsIm[i][j][k] * shCoef_scale; - } -#else mvr2r( hrtfShCoeffsRe[i][j], hrtfParambin->hrtfShCoeffsRe[i][j], HRTF_NUM_BINS ); mvr2r( hrtfShCoeffsIm[i][j], hrtfParambin->hrtfShCoeffsIm[i][j], HRTF_NUM_BINS ); -#endif } } -#ifdef FIX_1123_PARAMBIN_16BIT_ROM - for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) - { - hrtfParambin->parametricReverberationTimes[i] = parametricReverberationTimes[i] * rt_scale; - hrtfParambin->parametricReverberationEneCorrections[i] = parametricReverberationEneCorrections[i] * rene_scale; - hrtfParambin->parametricEarlyPartEneCorrection[i] = parametricEarlyPartEneCorrection[i] * early_scale; - } -#else mvr2r( parametricReverberationTimes, hrtfParambin->parametricReverberationTimes, CLDFB_NO_CHANNELS_MAX ); mvr2r( parametricReverberationEneCorrections, hrtfParambin->parametricReverberationEneCorrections, CLDFB_NO_CHANNELS_MAX ); mvr2r( parametricEarlyPartEneCorrection, hrtfParambin->parametricEarlyPartEneCorrection, CLDFB_NO_CHANNELS_MAX ); -#endif *hHrtfParambin = hrtfParambin; diff --git a/lib_rend/ivas_rom_binauralRenderer.h b/lib_rend/ivas_rom_binauralRenderer.h index d7eae54003..7a61aa0cb7 100644 --- a/lib_rend/ivas_rom_binauralRenderer.h +++ b/lib_rend/ivas_rom_binauralRenderer.h @@ -79,21 +79,6 @@ extern float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; extern float fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; -#ifdef FIX_1123_PARAMBIN_16BIT_ROM -/* Binaural rendering data set based on BRIRs, to be used in a combined manner - * with the above binaural rendering data set based on HRIRs for parametric - * renderer */ -extern const int16_t hrtfShCoeffs_factorQ; -extern const int16_t hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; -extern const int16_t hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; - -extern const int16_t parametricReverberationTimes_factorQ; -extern const int16_t parametricReverberationEneCorrections_factorQ; -extern const int16_t parametricEarlyPartEneCorrection_factorQ; -extern const int16_t parametricReverberationTimes[CLDFB_NO_CHANNELS_MAX]; -extern const int16_t parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; -extern const int16_t parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX]; -#else /* Binaural rendering data set based on BRIRs, to be used in a combined manner * with the above binaural rendering data set based on HRIRs for parametric * renderer */ @@ -103,4 +88,3 @@ extern float hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; extern const float parametricReverberationTimes[CLDFB_NO_CHANNELS_MAX]; extern const float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX]; extern const float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX]; -#endif -- GitLab From a5bb6d1ca389e3bf44ea568cfaaa9628e041d551 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:34:47 +0200 Subject: [PATCH 05/11] remove commented defines from options.h --- lib_com/options.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index de7508aba9..dfa066cd2d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -166,10 +166,7 @@ #ifdef FIX_POINT_HRTF_FILE_FORMAT #define FIX_1123_CREND_16BIT_FMT /* Ora: update CREND binary file format to 16 bit */ #define FIX_1123_CREND_FLTFX_BE /* Ora: make CREND FLT ROM tables BE to FX file */ -/*#define FIX_1123_TDREN_16BIT_ROM*/ /* Eri,Ora: update TD Object Renderer tables to 16 bit */ -/*#define FIX_1123_FASTCONV_16BIT_ROM*/ /* FhG: issue 1123: update FastConv ROM tables to 16 bit (must regenerate ROM file!) */ #define FIX_1123_FASTCONV_16BIT_FMT /* FhG: issue 1123: update FastConv binary file format and scripts to 16 bit */ -/*#define FIX_1123_PARAMBIN_16BIT_ROM*/ /* FhG,Nok: issue 1123: update ParamBin ROM tables and scripts to generate 16 bit tables instead of float */ #define FIX_RETURN /* VA: fix location of function returns */ #endif #define FIX_1129_EXT_REND_OUTPUT_HIGH /* Philips: issue 1129: External renderer BINAURAL_ROOM_REVERB format output level too high compared to internal rendering output */ -- GitLab From 050de31855d6449ef9da85de582ed7a55b913c06 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 15 Aug 2024 15:35:58 +0200 Subject: [PATCH 06/11] clang-format --- lib_com/ivas_prot.h | 3 +-- lib_dec/ivas_binRenderer_internal.c | 12 ++++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 23d2cb14e2..4bd3ec5635 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5130,8 +5130,7 @@ ivas_error ivas_allocate_binaural_hrtf( HRTFS_FASTCONV *HrtfFastConv, /* i/o: FASTCONV HRTF structure */ const AUDIO_CONFIG input_config, /* i : input audio configuration */ const BINAURAL_INPUT_AUDIO_CONFIG bin_input_config, /* i : binaural input audio config */ - const RENDERER_TYPE renderer_type /* i : renderer type */ - , + const RENDERER_TYPE renderer_type, /* i : renderer type */ const int16_t allocate_init_flag /* i : Memory allocation flag */ ); diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index 4e1a9b0d88..fe8181694c 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -520,10 +520,8 @@ static ivas_error ivas_alloc_pppMem( float ****pppMem, const int16_t dim1, const int16_t dim2, - const int16_t dim3 - , - const int16_t allocate_init_flag -) + const int16_t dim3, + const int16_t allocate_init_flag ) { int16_t i, j; float ***localMem = NULL; @@ -1412,10 +1410,8 @@ void ivas_binRenderer_close( static void ivas_free_pppHrtfMem( float ****ppppHRIR, - const int16_t dim - , - const int16_t alloc_init -) + const int16_t dim, + const int16_t alloc_init ) { int16_t i, j; -- GitLab From bc93ab5e7b9a7c0af8247765b7864bf5be93c6d4 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Mon, 26 Aug 2024 14:05:51 +0200 Subject: [PATCH 07/11] Complete clean up --- .../modeling_tool/Gen_Hrf_IVAS_Binary.m | 282 ++---------------- 1 file changed, 23 insertions(+), 259 deletions(-) diff --git a/scripts/td_object_renderer/modeling_tool/Gen_Hrf_IVAS_Binary.m b/scripts/td_object_renderer/modeling_tool/Gen_Hrf_IVAS_Binary.m index e31f8008be..ad6e2be5f6 100644 --- a/scripts/td_object_renderer/modeling_tool/Gen_Hrf_IVAS_Binary.m +++ b/scripts/td_object_renderer/modeling_tool/Gen_Hrf_IVAS_Binary.m @@ -116,36 +116,6 @@ if dataSpec.genRomFile ' * TD Binaural rendering related ROM tables' ' *------------------------------------------------------------------------*/' '/* TD renderer default HRIR model */' - '#ifdef FIX_1123_TDREN_16BIT_ROM' - 'extern const int16_t defaultHRIR_rom_latency_s_Q;' - 'extern const int32_t defaultHRIR_rom_latency_s;' - 'extern const int16_t defaultHRIR_rom_model_configuration[6];' - ['extern const int16_t defaultHRIR_rom_azimDim3[' int2str(size(mod_hrf_org.elevBf{1}, 3)) '];'] - ['extern const int16_t defaultHRIR_rom_azim_start_idx[' int2str(size(mod_hrf_org.elevBf{1}, 3)) '];'] - 'extern const int16_t defaultHRIR_rom_azimSegSamples[1];' - ['extern const int16_t defaultHRIR_rom_azimShapeIdx[' int2str(size(mod_hrf_org.elevBf{1}, 3)) '];'] - ['extern const int16_t defaultHRIR_rom_azimShapeSampFactor[' int2str(size(mod_hrf_org.elevBf{1}, 3)) '];'] - 'extern const int16_t defaultHRIR_rom_elevKSeq_Q;' - ['extern const int16_t defaultHRIR_rom_elevKSeq[' int2str(length(mod_hrf_org.elevKSeq{1})) '];'] - 'extern const int16_t defaultHRIR_rom_Alpha48_Q;' - ['extern const int16_t defaultHRIR_rom_AlphaL48[' int2str(size(mod_hrf_org.WL{1}, 1)) ' * ' int2str(size(mod_hrf_org.WL{1}, 2)) '];'] - ['extern const int16_t defaultHRIR_rom_AlphaR48[' int2str(size(mod_hrf_org.WR{1}, 1)) ' * ' int2str(size(mod_hrf_org.WR{1}, 2)) '];'] - 'extern const int16_t defaultHRIR_rom_Alpha32_Q;' - ['extern const int16_t defaultHRIR_rom_AlphaL32[' int2str(size(mod_hrf_org.WL{1}, 1)) ' * ' int2str(ceil(32*size(mod_hrf_org.WL{1}, 2)/48)) '];'] - ['extern const int16_t defaultHRIR_rom_AlphaR32[' int2str(size(mod_hrf_org.WR{1}, 1)) ' * ' int2str(ceil(32*size(mod_hrf_org.WR{1}, 2)/48)) '];'] - 'extern const int16_t defaultHRIR_rom_Alpha16_Q;' - ['extern const int16_t defaultHRIR_rom_AlphaL16[' int2str(size(mod_hrf_org.WL{1}, 1)) ' * ' int2str(ceil(16*size(mod_hrf_org.WL{1}, 2)/48)) '];'] - ['extern const int16_t defaultHRIR_rom_AlphaR16[' int2str(size(mod_hrf_org.WR{1}, 1)) ' * ' int2str(ceil(16*size(mod_hrf_org.WR{1}, 2)/48)) '];'] - 'extern const int16_t defaultHRIR_rom_E48_Q;' - ['extern const int32_t defaultHRIR_rom_EL48[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WL{1}, 1)) '];'] - ['extern const int32_t defaultHRIR_rom_ER48[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WR{1}, 1)) '];'] - 'extern const int16_t defaultHRIR_rom_E32_Q;' - ['extern const int32_t defaultHRIR_rom_EL32[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WL{1}, 1)) '];'] - ['extern const int32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WR{1}, 1)) '];'] - 'extern const int16_t defaultHRIR_rom_E16_Q;' - ['extern const int32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WL{1}, 1)) '];'] - ['extern const int32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WR{1}, 1)) '];'] - '#else' 'extern const float defaultHRIR_rom_latency_s;' 'extern const int16_t defaultHRIR_rom_model_configuration[6];' ['extern const int16_t defaultHRIR_rom_azimDim3[' int2str(size(mod_hrf_org.elevBf{1}, 3)) '];'] @@ -166,7 +136,6 @@ if dataSpec.genRomFile ['extern const uint32_t defaultHRIR_rom_ER32[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WR{1}, 1)) '];'] ['extern const uint32_t defaultHRIR_rom_EL16[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WL{1}, 1)) '];'] ['extern const uint32_t defaultHRIR_rom_ER16[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf_org.WR{1}, 1)) '];'] - '#endif'... }, newline)); fprintf(fileID_h,'%s', h_file_content); @@ -215,12 +184,7 @@ if dataSpec.genRomFile fileID_c = fopen(c_file_name,'at'); c_file_content = string(join({ - '#ifdef FIX_1123_TDREN_16BIT_ROM' - ['const int16_t defaultHRIR_rom_latency_s_Q = ' num2str(Q_latency) ';'] - ['const int32_t defaultHRIR_rom_latency_s = ' num2str(integer_latency) ';'] - '#else' ['const float defaultHRIR_rom_latency_s = ' num2str(single(mod.dat.hrf.hrf_latency),'%.9f') 'f;'] - '#endif' '' }, newline)); fprintf(fileID_c,'%s', c_file_content); @@ -577,16 +541,9 @@ for fs = [48000 32000 16000] arr_str_fx = replace(arr_str_fx,' ', ', '); c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_elevKSeq_Q = ' num2str( Q_elevKSeq) ';' newline ... - 'const int16_t defaultHRIR_rom_elevKSeq[' num2str(length(mod_hrf.elevKSeq{1})) '] = {' newline ... - arr_str_fx ... - newline '};' newline ... - '#else' newline ... - 'const float defaultHRIR_rom_elevKSeq[' num2str(length(mod_hrf.elevKSeq{1})) '] = {' newline ... + ['const float defaultHRIR_rom_elevKSeq[' num2str(length(mod_hrf.elevKSeq{1})) '] = {' newline ... arr_str ... newline '};' newline ... - '#endif' newline ... ]; fprintf(fileID_c,'%s', c_file_content); @@ -638,17 +595,10 @@ for fs = [48000 32000 16000] arr_str_fx = arr_str_fx(2:end); arr_str_fx(end) = ';'; arr_str_fx = replace(arr_str_fx, ";",', '); - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_elevBsShape_Q = ' num2str( Q_elevSplineShape_all) ';' newline ... - 'const int16_t defaultHRIR_rom_elevBsShape[' num2str(length(elevSplineShape_all)) '] = {' newline ... - arr_str_fx ... - newline '};' newline ... - '#else' newline ... + c_file_content = [... 'const uint32_t defaultHRIR_rom_elevBsShape[' num2str(length(elevSplineShape_all)) '] = {' newline ... arr_str ... newline '};' newline ... - '#endif' newline ... ]; fprintf(fileID_c,'%s', c_file_content); @@ -665,17 +615,10 @@ for fs = [48000 32000 16000] arr_str_fx = arr_str_fx(2:end); arr_str_fx(end) = ';'; arr_str_fx = replace(arr_str_fx, ";",', '); - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_azimBsShape_Q = ' num2str( Q_azimSplineShape{n}) ';' newline ... - 'const int16_t defaultHRIR_rom_azimBsShape[' num2str(length(azimSplineShape{n})) '] = {' newline ... - arr_str_fx ... - newline '};' newline ... - '#else' newline ... + c_file_content = [... 'const uint32_t defaultHRIR_rom_azimBsShape[' num2str(length(azimSplineShape{n})) '] = {' newline ... arr_str ... newline '};' newline ... - '#endif' newline ... ]; fprintf(fileID_c,'%s', c_file_content); fclose(fileID_c); @@ -696,27 +639,7 @@ for fs = [48000 32000 16000] numIter = floor(size(mod_hrf.WL{1},1)*size(mod_hrf.WL{1},2)/numCol); numRemain = size(mod_hrf.WL{1},1)*size(mod_hrf.WL{1},2) - numCol * numIter; c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_Alpha' num2str(fs/1000) '_Q = ' num2str( Q_WL) ';' newline ... - 'const int16_t defaultHRIR_rom_AlphaL' num2str(fs/1000) '[' int2str(size(mod_hrf.WL{1}, 1)) ' * ' int2str(size(mod_hrf.WL{1}, 2)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - c_file_content = ... - ['#else' newline ... - 'const uint32_t defaultHRIR_rom_AlphaL' num2str(fs/1000) '[' int2str(size(mod_hrf.WL{1}, 1)) ' * ' int2str(size(mod_hrf.WL{1}, 2)) '] = {' newline ]; + ['const uint32_t defaultHRIR_rom_AlphaL' num2str(fs/1000) '[' int2str(size(mod_hrf.WL{1}, 1)) ' * ' int2str(size(mod_hrf.WL{1}, 2)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter arr_str = join(mat2str(arr_str_all((ind-1) * numCol + 1 :ind * numCol, : ))); @@ -732,8 +655,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline ... - '#endif' newline]; + c_file_content = [ arr_str newline '};' newline ]; fprintf(fileID_c,'%s', c_file_content); @@ -747,25 +669,7 @@ for fs = [48000 32000 16000] numIter = floor(size(mod_hrf.WR{1},1)*size(mod_hrf.WR{1},2)/numCol); numRemain = size(mod_hrf.WR{1},1)*size(mod_hrf.WR{1},2) - numCol * numIter; c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_AlphaR' num2str(fs/1000) '[' int2str(size(mod_hrf.WR{1}, 1)) ' * ' int2str(size(mod_hrf.WR{1}, 2)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - c_file_content = ... - ['#else' newline ... + [ ... 'const uint32_t defaultHRIR_rom_AlphaR' num2str(fs/1000) '[' int2str(size(mod_hrf.WR{1}, 1)) ' * ' int2str(size(mod_hrf.WR{1}, 2)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter @@ -782,8 +686,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline ... - '#endif' newline]; + c_file_content = [ arr_str newline '};' newline]; fprintf(fileID_c,'%s', c_file_content); fclose(fileID_c); @@ -855,27 +758,7 @@ for fs = [48000 32000 16000] numCol = 25; numIter = floor(HRTF_MODEL_N_SECTIONS*size(mod_hrf.WL{1},1)/numCol); numRemain = HRTF_MODEL_N_SECTIONS*size(mod_hrf.WL{1},1) - numCol * numIter; - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_E' num2str(fs/1000) '_Q = ' num2str( Q_EL) ';' newline ... - 'const int32_t defaultHRIR_rom_EL' num2str(fs/1000) '[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf.WL{1}, 1)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - c_file_content = ... - ['#else' newline ... + c_file_content = [... 'const uint32_t defaultHRIR_rom_EL' num2str(fs/1000) '[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf.WL{1}, 1)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter @@ -892,7 +775,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline '#endif' newline]; + c_file_content = [ arr_str newline '};']; fprintf(fileID_c,'%s', c_file_content); if dataSpec.makeFxFltBE @@ -905,27 +788,8 @@ for fs = [48000 32000 16000] numIter = floor(HRTF_MODEL_N_SECTIONS*size(mod_hrf.WL{1},1)/numCol); numRemain = HRTF_MODEL_N_SECTIONS*size(mod_hrf.WL{1},1) - numCol * numIter; - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int32_t defaultHRIR_rom_ER' num2str(fs/1000) '[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf.WL{1}, 1)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",', '); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - c_file_content = ... - ['#else' newline ... - 'const uint32_t defaultHRIR_rom_ER' num2str(fs/1000) '[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf.WL{1}, 1)) '] = {' newline ]; + c_file_content = [... + newline 'const uint32_t defaultHRIR_rom_ER' num2str(fs/1000) '[HRTF_MODEL_N_SECTIONS * ' int2str(size(mod_hrf.WL{1}, 1)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter arr_str = join(mat2str(arr_str_all((ind-1) * numCol + 1 :ind * numCol, : ))); @@ -941,7 +805,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline '#endif' newline]; + c_file_content = [ arr_str newline '};' newline ]; fprintf(fileID_c,'%s', c_file_content); fclose(fileID_c); @@ -1003,28 +867,7 @@ for fs = [48000 32000 16000] numCol = 25; numIter = floor(length(mod_itd.W)/numCol); numRemain = length(mod_itd.W) - numCol * numIter; - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_ITD_W_Q = ' num2str(Q_itd_W) ';' newline ... - 'const int16_t defaultHRIR_rom_ITD_W[' num2str(length(mod_itd.W)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - - c_file_content = ... - ['#else' newline ... + c_file_content = [... 'const uint32_t defaultHRIR_rom_ITD_W[' num2str(length(mod_itd.W)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter @@ -1041,7 +884,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline '#endif' newline]; + c_file_content = [ arr_str newline '};' newline]; fprintf(fileID_c,'%s', c_file_content); c_file_content = ... @@ -1115,28 +958,7 @@ for fs = [48000 32000 16000] numCol = 25; numIter = floor(length(azimSplineShapeITD_all)/numCol); numRemain = length(azimSplineShapeITD_all) - numCol * numIter; - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_ITD_azimBsShape_Q = ' num2str(Q_azimSplineShapeITD_all) ';' newline ... - 'const int16_t defaultHRIR_rom_ITD_azimBsShape[' num2str(length(azimSplineShapeITD_all)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - - c_file_content = ... - ['#else' newline ... + c_file_content = [... 'const uint32_t defaultHRIR_rom_ITD_azimBsShape[' num2str(length(azimSplineShapeITD_all)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter @@ -1153,7 +975,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline '#endif' newline]; + c_file_content = [ arr_str newline '};' newline]; fprintf(fileID_c,'%s', c_file_content); if dataSpec.makeFxFltBE @@ -1169,16 +991,9 @@ for fs = [48000 32000 16000] arr_str_fx(end) = ' '; arr_str_fx = replace(arr_str_fx,' ', ', '); c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_ITD_azimKSeq_Q = ' num2str(Q_itd_azimKSeq) ';' newline ... - 'const int16_t defaultHRIR_rom_ITD_azimKSeq[' num2str(length(mod_itd.azimKSeq{2})) '] = {' newline ... - arr_str_fx ... - newline '};' newline ... - '#else' newline ... - 'const float defaultHRIR_rom_ITD_azimKSeq[' num2str(length(mod_itd.azimKSeq{2})) '] = {' newline ... + ['const float defaultHRIR_rom_ITD_azimKSeq[' num2str(length(mod_itd.azimKSeq{2})) '] = {' newline ... arr_str ... - newline '};' newline '#endif' newline ... - ]; + newline '};' newline]; fprintf(fileID_c,'%s', c_file_content); if dataSpec.makeFxFltBE @@ -1190,29 +1005,8 @@ for fs = [48000 32000 16000] numCol = 25; numIter = floor(length(elevSplineShapeITD_all)/numCol); numRemain = length(elevSplineShapeITD_all) - numCol * numIter; - c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_ITD_elevBsShape_Q = ' num2str(Q_elevSplineShapeITD_all) ';' newline ... - 'const int16_t defaultHRIR_rom_ITD_elevBsShape[' num2str(length(elevSplineShapeITD_all)) '] = {' newline ]; - fprintf(fileID_c,'%s', c_file_content); - for ind = 1: numIter - arr_str = join(mat2str(arr_str_all_fx((ind-1) * numCol + 1 :ind * numCol, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline]; - fprintf(fileID_c,'%s', c_file_content); - end - arr_str = join(mat2str(arr_str_all_fx(ind * numCol + 1 :ind * numCol + numRemain, : ))); - arr_str = arr_str(2:end); - arr_str(end) = ';'; - arr_str = replace(arr_str, ";",','); - c_file_content = [ arr_str newline '};' newline]; - fprintf(fileID_c,'%s', c_file_content); - - c_file_content = ... - ['#else' newline ... - 'const uint32_t defaultHRIR_rom_ITD_elevBsShape[' num2str(length(elevSplineShapeITD_all)) '] = {' newline ]; + + c_file_content = ['const uint32_t defaultHRIR_rom_ITD_elevBsShape[' num2str(length(elevSplineShapeITD_all)) '] = {' newline ]; fprintf(fileID_c,'%s', c_file_content); for ind = 1: numIter arr_str = join(mat2str(arr_str_all((ind-1) * numCol + 1 :ind * numCol, : ))); @@ -1228,7 +1022,7 @@ for fs = [48000 32000 16000] arr_str(end) = ';'; arr_str = replace(arr_str, "';",','); arr_str = replace(arr_str, "'",'0x'); - c_file_content = [ arr_str newline '};' newline '#endif' newline]; + c_file_content = [ arr_str newline '};' newline]; fprintf(fileID_c,'%s', c_file_content); if dataSpec.makeFxFltBE @@ -1244,15 +1038,9 @@ for fs = [48000 32000 16000] arr_str_fx(end) = ' '; arr_str_fx = replace(arr_str_fx,' ', ', '); c_file_content = ... - ['#ifdef FIX_1123_TDREN_16BIT_ROM' newline ... - 'const int16_t defaultHRIR_rom_ITD_elevKSeq_Q = ' num2str(Q_elevKSeq_itd) ';' newline ... - 'const int16_t defaultHRIR_rom_ITD_elevKSeq[' num2str(length(mod_itd.elevKSeq)) '] = {' newline ... - arr_str_fx ... - newline '};' newline ... - '#else' newline ... - 'const float defaultHRIR_rom_ITD_elevKSeq[' num2str(length(mod_itd.elevKSeq)) '] = {' newline ... + ['const float defaultHRIR_rom_ITD_elevKSeq[' num2str(length(mod_itd.elevKSeq)) '] = {' newline ... arr_str ... - newline '};' newline '#endif' newline ... + newline '};' newline ... ]; fprintf(fileID_c,'%s', c_file_content); @@ -1273,29 +1061,6 @@ end % fs loop if dataSpec.genRomFile h_file_content = string(join({'' - '#ifdef FIX_1123_TDREN_16BIT_ROM' - ['extern const int16_t defaultHRIR_rom_elevBsLen[' int2str(length(len_e)) '];'] - ['extern const int16_t defaultHRIR_rom_elevBsStart[' int2str(length(start_e)) '];'] - 'extern const int16_t defaultHRIR_rom_elevBsShape_Q;' - ['extern const int16_t defaultHRIR_rom_elevBsShape[' int2str(length(elevSplineShape_all)) '];'] - 'extern const int16_t defaultHRIR_rom_azimBsShape_Q;' - ['extern const int16_t defaultHRIR_rom_azimBsShape[' int2str(length(azimSplineShape{1})) '];'] - 'extern const int16_t defaultHRIR_rom_ITD_W_Q;' - ['extern const int16_t defaultHRIR_rom_ITD_W[' int2str(mod_itd.angleBfNum) '];'] - 'extern const int16_t defaultHRIR_rom_ITD_azimBsShape_Q;' - ['extern const int16_t defaultHRIR_rom_ITD_azimBsShape[' int2str(length(azimSplineShapeITD_all)) '];'] - 'extern const int16_t defaultHRIR_rom_ITD_azimKSeq_Q;' - ['extern const int16_t defaultHRIR_rom_ITD_azimKSeq[19];'] - 'extern const int16_t defaultHRIR_rom_ITD_elevBsShape_Q;' - ['extern const int16_t defaultHRIR_rom_ITD_elevBsShape[' int2str(length(elevSplineShapeITD_all)) '];'] - 'extern const int16_t defaultHRIR_rom_ITD_elevKSeq_Q;' - ['extern const int16_t defaultHRIR_rom_ITD_elevKSeq[16];'] - 'extern const int16_t defaultHRIR_rom_ITD_model_configuration[4];' - ['extern const int16_t defaultHRIR_rom_ITD_elevBsLen[' int2str(length(len_e_ITD)) '];'] - ['extern const int16_t defaultHRIR_rom_ITD_elevBsStart[' int2str(length(start_e_ITD)) '];'] - ['extern const int16_t defaultHRIR_rom_ITD_azimBsLen[' int2str(length(len_a_ITD)) '];'] - ['extern const int16_t defaultHRIR_rom_ITD_azimBsStart[' int2str(length(start_a_ITD)) '];'] - '#else' ['extern const int16_t defaultHRIR_rom_elevBsLen[' int2str(length(len_e)) '];'] ['extern const int16_t defaultHRIR_rom_elevBsStart[' int2str(length(start_e)) '];'] ['extern const uint32_t defaultHRIR_rom_elevBsShape[' int2str(length(elevSplineShape_all)) '];'] @@ -1311,7 +1076,6 @@ if dataSpec.genRomFile ['extern const int16_t defaultHRIR_rom_ITD_azimBsLen[' int2str(length(len_a_ITD)) '];'] ['extern const int16_t defaultHRIR_rom_ITD_azimBsStart[' int2str(length(start_a_ITD)) '];'] '#endif' - '#endif' '' }, newline)); -- GitLab From e2f6a0b271c128ea6062b47aa4c8d8b8452d3f09 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Mon, 26 Aug 2024 17:48:44 +0200 Subject: [PATCH 08/11] bug fix on fastconv binaural memory allocation when reading hrtf binary file --- lib_dec/ivas_binRenderer_internal.c | 5 +- lib_util/hrtf_file_reader.c | 100 ++++++++++++++++++++++++++-- 2 files changed, 96 insertions(+), 9 deletions(-) diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index fe8181694c..aafabb039a 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -565,9 +565,8 @@ ivas_error ivas_allocate_binaural_hrtf( HRTFS_FASTCONV *HrtfFastConv, /* i/o: FASTCONV HRTF structure */ const AUDIO_CONFIG input_config, /* i : input audio configuration */ const BINAURAL_INPUT_AUDIO_CONFIG bin_input_config, /* i : binaural input audio config */ - const RENDERER_TYPE renderer_type /* i : renderer type */ - , - const int16_t allocate_init_flag /* i : Memory allocation flag */ + const RENDERER_TYPE renderer_type, /* i : renderer type */ + const int16_t allocate_init_flag /* i : Memory allocation flag */ ) { if ( input_config == IVAS_AUDIO_CONFIG_HOA3 || bin_input_config == BINAURAL_INPUT_AUDIO_CONFIG_HOA3 ) diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 97e14ed576..426b7c62a9 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -1881,6 +1881,9 @@ static ivas_error create_fastconv_HRTF_from_rawdata( #ifdef FIX_1123_FASTCONV_16BIT_FMT float scaleFactor; int16_t *ptW16; + float latency_s; + uint16_t ntaps; + uint16_t nbchan; #else int32_t *ptW32; #endif @@ -1892,6 +1895,85 @@ static ivas_error create_fastconv_HRTF_from_rawdata( ( *hHRTF )->allocate_init_flag = 0; +#ifdef FIX_1123_FASTCONV_16BIT_FMT + hrtf_data_rptr = hrtf_data; + + /* latency_s Q factor*/ + factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); + hrtf_data_rptr += sizeof( Word16 ); + + /* latency_s */ + latency_s = ( *( (Word32 *) ( hrtf_data_rptr ) ) ) * powf( 2.f, -1.f * factorQ ); + hrtf_data_rptr += sizeof( Word32 ); + + if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" ); + } + hrtf_data_rptr += sizeof( uint16_t ); + + nbchan = *( (uint16_t *) ( hrtf_data_rptr ) ); + hrtf_data_rptr += sizeof( uint16_t ); + + ntaps = *( (uint16_t *) ( hrtf_data_rptr ) ); + hrtf_data_rptr += sizeof( uint16_t ); + + if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) + { + if ( HRTF_LS_CHANNELS != nbchan ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_LS_CHANNELS)" ); + } + ( *hHRTF )->ntaps_hrir = ntaps; + ( *hHRTF )->FASTCONV_HRIR_latency_s = latency_s; + } + else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA3 ) + { + if ( HOA3_CHANNELS != nbchan ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA3_CHANNELS)" ); + } + ( *hHRTF )->ntaps_hrir_hoa3 = ntaps; + ( *hHRTF )->FASTCONV_HOA3_latency_s = latency_s; + } + else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) + { + if ( HOA2_CHANNELS != nbchan ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA2_CHANNELS)" ); + } + ( *hHRTF )->ntaps_hrir_hoa2 = ntaps; + ( *hHRTF )->FASTCONV_HOA2_latency_s = latency_s; + } + else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) + { + if ( FOA_CHANNELS != nbchan ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (FOA_CHANNELS)" ); + } + ( *hHRTF )->ntaps_hrir_foa = ntaps; + ( *hHRTF )->FASTCONV_FOA_latency_s = latency_s; + } + else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) + { + if ( HRTF_LS_CHANNELS != nbchan ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HRTF_LS_CHANNELS)" ); + } + ( *hHRTF )->ntaps_brir = ntaps; + ( *hHRTF )->FASTCONV_BRIR_latency_s = latency_s; + } + else + { + return IVAS_ERROR( IVAS_ERR_BITSTREAM_READER_INVALID_FORMAT, "Can not read hrtf binary file : wrong render type and input config couple " ); + } +#else + if ( BINAURAL_NTAPS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS)" ); + } +#endif + if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) { if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) @@ -1910,11 +1992,13 @@ static ivas_error create_fastconv_HRTF_from_rawdata( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "renderer type not compliant" ); } +#ifndef FIX_1123_FASTCONV_16BIT_FMT hrtf_data_rptr = hrtf_data; - +#endif /* HRIR */ if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) { +#ifndef FIX_1123_FASTCONV_16BIT_FMT /* latency_s Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -1944,7 +2028,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } #endif hrtf_data_rptr += sizeof( uint16_t ); - +#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2056,6 +2140,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA3 ) { +#ifndef FIX_1123_FASTCONV_16BIT_FMT /* latency_s Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -2085,6 +2170,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } #endif hrtf_data_rptr += sizeof( uint16_t ); +#endif /* HRIR Q factor*/ @@ -2197,6 +2283,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_HOA2 ) { +#ifndef FIX_1123_FASTCONV_16BIT_FMT /* latency_s Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -2216,7 +2303,6 @@ static ivas_error create_fastconv_HRTF_from_rawdata( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA2_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); - #ifdef FIX_1123_FASTCONV_16BIT_FMT ( *hHRTF )->ntaps_hrir_hoa2 = *( (uint16_t *) ( hrtf_data_rptr ) ); #else @@ -2226,7 +2312,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } #endif hrtf_data_rptr += sizeof( uint16_t ); - +#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2338,6 +2424,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_FOA ) { +#ifndef FIX_1123_FASTCONV_16BIT_FMT /* latency_s Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -2368,7 +2455,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } #endif hrtf_data_rptr += sizeof( uint16_t ); - +#endif /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); @@ -2481,6 +2568,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( /* BRIR */ else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM && input_cfg == BINAURAL_INPUT_AUDIO_CONFIG_COMBINED ) { +#ifndef FIX_1123_FASTCONV_16BIT_FMT /* latency_s Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -2510,7 +2598,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } #endif hrtf_data_rptr += sizeof( uint16_t ); - +#endif /* BRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); -- GitLab From 4a1acf50f21184905d4ce2122420a2392534d433 Mon Sep 17 00:00:00 2001 From: marc emerit Date: Tue, 27 Aug 2024 11:10:13 +0200 Subject: [PATCH 09/11] variable filters taps size in fastconv memory allocation --- lib_dec/ivas_binRenderer_internal.c | 95 +++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index aafabb039a..cbd08aae36 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -577,6 +577,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { +#ifdef FIX_1123_FASTCONV_16BIT_FMT + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + } +#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA3, BINAURAL_CONVBANDS, HOA3_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); @@ -593,6 +611,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); } +#endif } } @@ -604,6 +623,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { +#ifdef FIX_1123_FASTCONV_16BIT_FMT + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + } +#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); @@ -620,6 +657,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } +#endif } } @@ -631,6 +669,24 @@ ivas_error ivas_allocate_binaural_hrtf( } else { +#ifdef FIX_1123_FASTCONV_16BIT_FMT + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + } +#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); @@ -647,6 +703,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } +#endif } } @@ -658,6 +715,24 @@ ivas_error ivas_allocate_binaural_hrtf( { if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) { +#ifdef FIX_1123_FASTCONV_16BIT_FMT + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + } +#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); @@ -674,6 +749,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } +#endif } } @@ -685,6 +761,24 @@ ivas_error ivas_allocate_binaural_hrtf( { if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) { +#ifdef FIX_1123_FASTCONV_16BIT_FMT + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + } + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + } +#else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); @@ -701,6 +795,7 @@ ivas_error ivas_allocate_binaural_hrtf( { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } +#endif } } -- GitLab From b8a3a27acf84159f618451b5cc1862eb40a3f373 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 27 Aug 2024 16:40:05 +0200 Subject: [PATCH 10/11] [fix] incorrect constants from 4a1acf50 --- lib_dec/ivas_binRenderer_internal.c | 64 ++++++++++++++--------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/lib_dec/ivas_binRenderer_internal.c b/lib_dec/ivas_binRenderer_internal.c index cbd08aae36..98cf52caf8 100644 --- a/lib_dec/ivas_binRenderer_internal.c +++ b/lib_dec/ivas_binRenderer_internal.c @@ -624,21 +624,21 @@ ivas_error ivas_allocate_binaural_hrtf( else { #ifdef FIX_1123_FASTCONV_16BIT_FMT - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_HOA2, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) @@ -670,21 +670,21 @@ ivas_error ivas_allocate_binaural_hrtf( else { #ifdef FIX_1123_FASTCONV_16BIT_FMT - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal_FOA, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) @@ -716,21 +716,21 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftHRIRReal == NULL ) && ( HrtfFastConv->leftHRIRImag == NULL ) && ( HrtfFastConv->rightHRIRReal == NULL ) && ( HrtfFastConv->rightHRIRImag == NULL ) ) { #ifdef FIX_1123_FASTCONV_16BIT_FMT - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightHRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftHRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) @@ -762,21 +762,21 @@ ivas_error ivas_allocate_binaural_hrtf( if ( ( HrtfFastConv->leftBRIRReal == NULL ) && ( HrtfFastConv->leftBRIRImag == NULL ) && ( HrtfFastConv->rightBRIRReal == NULL ) && ( HrtfFastConv->rightBRIRImag == NULL ) ) { #ifdef FIX_1123_FASTCONV_16BIT_FMT - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRImag" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRReal" ); } - if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) + if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->rightBRIRImag, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" ); } #else if ( IVAS_ERR_OK != ivas_alloc_pppMem( &HrtfFastConv->leftBRIRReal, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) -- GitLab From 5b5f10f270fa937cb582f7ba3d8717bee8a3971b Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 27 Aug 2024 16:50:33 +0200 Subject: [PATCH 11/11] [fix] remove nested switch occurrence --- lib_util/hrtf_file_reader.c | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 426b7c62a9..1833c3046d 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -2019,14 +2019,10 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_FMT - ( *hHRTF )->ntaps_hrir = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); #endif @@ -2161,18 +2157,13 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_FMT - ( *hHRTF )->ntaps_hrir_hoa3 = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); #endif - /* HRIR Q factor*/ factorQ = *( (Word16 *) ( hrtf_data_rptr ) ); hrtf_data_rptr += sizeof( Word16 ); @@ -2303,14 +2294,10 @@ static ivas_error create_fastconv_HRTF_from_rawdata( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA2_CHANNELS)" ); } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_FMT - ( *hHRTF )->ntaps_hrir_hoa2 = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); #endif @@ -2446,14 +2433,10 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_FMT - ( *hHRTF )->ntaps_hrir_foa = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); #endif @@ -2589,14 +2572,10 @@ static ivas_error create_fastconv_HRTF_from_rawdata( } hrtf_data_rptr += sizeof( uint16_t ); -#ifdef FIX_1123_FASTCONV_16BIT_FMT - ( *hHRTF )->ntaps_brir = *( (uint16_t *) ( hrtf_data_rptr ) ); -#else if ( BINAURAL_NTAPS_MAX != *( (uint16_t *) ( hrtf_data_rptr ) ) ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS)" ); } -#endif hrtf_data_rptr += sizeof( uint16_t ); #endif -- GitLab